From nobody Mon Sep 17 00:00:00 2001 From: Kirill A. Shutemov Date: Fri, 12 May 2006 13:49:51 +0300 Subject: [PATCH] Option --local added --- gear | 19 +++++++++++++++++-- 1 files changed, 17 insertions(+), 2 deletions(-) 4b3aee96f66d2517c28f3109820ab89ef7b314ae diff --git a/gear b/gear index 87b69e9..a53a86d 100755 --- a/gear +++ b/gear @@ -109,6 +109,7 @@ Options: --export-dir=DIRNAME write source files to specified directory; -r, --rules=FILENAME name of file with rules, default is .$PROG-rules; -t, --tree-ish=ID tree, commit or tag object name; + -l, --local extract archive from local directory, not from git; -q, --quiet try to be more quiet; -v, --verbose print a message for each action; -V, --version print program version and exit; @@ -124,6 +125,10 @@ tmpdir= exit_handler() { local rc=$? + if [ -n "$local" ]; then + git-reset --soft HEAD^ + fi + trap - EXIT [ -z "$tmpdir" ] || rm -rf -- "$tmpdir" exit $rc @@ -432,7 +437,6 @@ parse_rules() lineno=0 local cmd options - echo >>"$workdir/rules" while read -r cmd options; do lineno="$((lineno+1))" case "$cmd" in @@ -458,7 +462,7 @@ opt_check_dir() printf %s "$value" } -TEMP=`getopt -n $PROG -o r:,t:,h,q,v,V -l no-compress,bzip2,gzip,hasher,rpmbuild,export-dir:,rules:,tree-ish:,help,quiet,verbose,version -- "$@"` || +TEMP=`getopt -n $PROG -o r:,t:,l,h,q,v,V -l no-compress,bzip2,gzip,hasher,rpmbuild,export-dir:,rules:,tree-ish:,local,help,quiet,verbose,version -- "$@"` || show_usage eval set -- "$TEMP" @@ -468,6 +472,7 @@ outdir= rules=".$PROG-rules" tar_compress=--gzip tree_id=HEAD +local= while :; do case "$1" in --) shift; break @@ -496,6 +501,8 @@ while :; do ;; -t|--tree-ish) shift; tree_id="$1" ;; + -l|--local) local=1 + ;; -h|--help) show_help ;; -q|--quiet) quiet=-q @@ -528,6 +535,10 @@ else shift fi +if [ -n "$local" -a "$tree_id" != 'HEAD' ]; then + show_usage 'Options --local is actual only with tree_ish=HEAD.' +fi + # Check given tree-ish. type="$(git-cat-file -t "$tree_id")" || fatal "Invalid GIT_DIR ($GIT_DIR) or tree-ish ($tree_id)" @@ -548,6 +559,10 @@ if [ -z "$outdir" ]; then mkdir "$outdir" fi +if [ -n "$local" ]; then + git-commit -a -m 'temporary commit' > /dev/null || { local=; info 'Nothing changed. Used last commit'; } +fi + find_specfile parse_rules -- 1.3.2