]> ruderich.org/simon Gitweb - config/dotfiles.git/blob - archive.sh
lib.sh: link(): simplify file checks
[config/dotfiles.git] / archive.sh
1 #!/bin/sh
2
3 # Create an archive of my configuration file which can be uploaded on a
4 # server.
5 #
6 # Usage: ./archive.sh
7
8 # Copyright (C) 2010-2013  Simon Ruderich
9 #
10 # This program is free software: you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation, either version 3 of the License, or
13 # (at your option) any later version.
14 #
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 # GNU General Public License for more details.
19 #
20 # You should have received a copy of the GNU General Public License
21 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
23
24 set -e
25
26 git_clone() {
27     git clone "$1" "$2" >/dev/null
28     ( cd "$2" && git remote rm origin && git gc )
29 }
30
31
32 # Don't overwrite an existing file/directory.
33 if test -e tmp; then
34     echo 'tmp/ already exists!'
35     exit 1
36 fi
37
38 git_clone . tmp/dotfiles
39 for name in browser shell vcs vim x11; do
40     test -d $name || continue
41
42     echo "cloning $name to tmp/"
43     git_clone $name tmp/dotfiles/$name
44 done
45
46 archive=dotfiles.tar.gz
47 echo "creating $archive"
48 tar cf tmp/$archive -C tmp -z dotfiles
49 echo "moving $archive to ."
50 mv tmp/$archive .
51
52 rm -rf tmp