#
# Usage: ./archive.sh
+# Copyright (C) 2010-2018 Simon Ruderich
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+set -eu
git_clone() {
- git clone "$1" "$2" > /dev/null
- cwd=`pwd`
- cd "$2" && git remote rm origin && git gc && cd "$cwd"
+ git clone "$1" "$2" >/dev/null
+ ( cd "$2" && git remote rm origin && git gc )
}
+
+# Don't overwrite an existing file/directory.
+if test -e tmp; then
+ echo 'tmp/ already exists!'
+ exit 1
+fi
+
git_clone . tmp/dotfiles
-for name in browser shell vcs vim x11; do
- echo cloning $name to tmp/
- git_clone $name tmp/dotfiles/$name
-done
-
-echo creating dotfiles.tar
-tar cf tmp/dotfiles.tar -C tmp dotfiles
-echo moving dotfiles.tar to .
-mv tmp/dotfiles.tar .
+
+archive=dotfiles.tar.gz
+echo "creating $archive"
+tar cf tmp/$archive -C tmp -z dotfiles
+echo "moving $archive to ."
+mv tmp/$archive .
rm -rf tmp