2 # archives2git - generate a Git history from a series of release tarballs
3 # Copyright © 2013 Géraud Meyer <graud@gmx.com>
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License version 2 as
7 # published by the Free Software Foundation.
9 # This program is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # You should have received a copy of the GNU General Public License along
15 # with this program. If not, see <http://www.gnu.org/licenses/>.
17 PROGRAM_NAME
="archives2git"
20 # archives2git [<options>] [--] <archives>
24 GIT_WORK_TREE
=${GIT_WORK_TREE-.}
36 shift; GIT_WORK_TREE
=$1 ;;
46 shift; ARGS
="$ARGS $1" ;;
48 echo "$PROGRAM_NAME version $PROGRAM_VERSION"
51 echo "$0: unknown option $1" >&2
65 # git repository check
66 cd "$GIT_WORK_TREE" &&
67 { test -d .git || git rev-parse
--git-dir >/dev
/null
; } ||
69 echo "$0: error not in a git repository" >&2
78 aunpack
-X "$TMPDIR" "$arch"
82 [ -e "$file" ] ||
continue
83 [ "$file" = "." -o "$file" = ".." -o "$file" = ".git" ] && continue
84 git
rm -r "$file" ||
rm -R "$file"
86 for file in "$TMPDIR"/* "$TMPDIR"/.
*
88 [ -e "$file" ] ||
continue
90 [ "$file" = "." -o "$file" = ".." ] && continue
91 name
=$
(eval "$RENAME")
93 then mv "$TMPDIR"/"$file" .
/"$name"
94 else rm "$TMPDIR"/"$file"
99 [ -e "$file" ] ||
continue
100 [ "$file" = "." -o "$file" = ".." -o "$file" = ".git" ] && continue
101 eval "$FILTER" && git add
"$file"
103 git commit
-m "$(eval "$TITLE")${BODY:+$NL$BODY}" \
104 ${DATE:+--date "$(eval "$DATE")"} $ARGS