]> ruderich.org/simon Gitweb - config/dotfiles.git/blob - archive.sh
shell: .gitignore: sort
[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-2018  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 -eu
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
40 archive=dotfiles.tar.gz
41 echo "creating $archive"
42 tar cf tmp/$archive -C tmp -z dotfiles
43 echo "moving $archive to ."
44 mv tmp/$archive .
45
46 rm -rf tmp