#! /bin/sh # BUNDLE=Git-RepoExport.bundle ARCHIVE_ZIP=Git-Archive.zip ARCHIVE_TGZ=Git-Archive.tgz REFNAME=refs/heads/master COMMIT=HEAD # # Function menu_list() { n=1 cat << END | while read text *** Menu *** 1) Verify Git bundle file 2) Fetch Git bundle file 3) Create Git bundle file L) List of commits S) Select a commit T) Create Git tgz-archive file Z) Create Git zip-archive file q) Quit END do echo "$text" n=`expr $n + 1` done return } menu_list echo -n "${COMMIT}>>> " while read input do case $input in 1) echo "[ Verify Git bundle file ]" git bundle verify $BUNDLE ;; 2) echo "[ Fetch Git bundle file ]" git fetch $BUNDLE ${REFNAME}:import ;; 3) echo "[ Create Git bundle file ]" if [ "${COMMIT}" = "HEAD" ] then git bundle create $BUNDLE HEAD ${REFNAME} else git bundle create $BUNDLE ${REFNAME} ^${COMMIT} fi ls -ld $BUNDLE ;; S) echo "[ Select a commit ]" echo -n "${COMMIT} --> " read COMMIT test -z "${COMMIT}" && COMMIT=HEAD ;; L) echo "[ List of commits ]" git log --oneline ;; T) echo "[ Create Git tgz-archive file ]" git archive HEAD --format=tgz -o $ARCHIVE_TGZ ls -ld $ARCHIVE_TGZ ;; Z) echo "[ Create Git zip-archive file ]" git archive HEAD --format=zip -o $ARCHIVE_ZIP ls -ld $ARCHIVE_ZIP ;; q) echo "Bye!" break ;; *) echo "?" ;; esac echo menu_list echo -n "${COMMIT}>>> " done