Blob
1 #!/bin/sh3 die() {4 ec=$15 shift6 echo "$@" >&27 exit "$ec"8 }10 usage() {11 die 1 "Usage: got-archive [-sV] [-b branch/tag] [-o outdir] [-t tmpdir] repo"12 }14 args=$(getopt b:o:st:V $*)15 [ $? -ne 0 ] && usage17 set -- $args19 strip=020 branch=21 outdir=.22 tmpdir="/tmp/got-archive"24 while [ $# -ne 0 ]; do25 case "$1" in26 -b)27 branch=$228 shift29 shift30 ;;31 -o)32 outdir=$233 shift34 shift35 ;;36 -s)37 strip=138 shift39 ;;40 -t)41 tmpdir=$242 shift43 shift44 ;;45 -V)46 echo "got-archive-@VERSION@"47 exit 148 ;;49 --)50 shift51 break52 ;;53 esac54 done56 [ $# -ne 1 ] && usage58 repo=$159 name=$(basename "$repo" .git)60 if [ "$strip" = 1 ]; then61 ver=$(echo "$branch" | sed 's/^v//g')62 else63 ver=$branch64 fi66 [ -d "$repo" ] || die 2 "Error: invalid repo: $repo"68 mkdir -p "$tmpdir"70 if [ "$branch" ]; then71 cname="$name-$ver"72 cdir="$tmpdir/$cname"73 rm -rf "$cdir"74 got checkout -q -c "$branch" "$repo" "$cdir" || die 3 "Error: failed to checkout"75 else76 cname="$name"77 cdir="$tmpdir/$cname"78 rm -rf "$cdir"79 got checkout -q "$repo" "$cdir" || die 3 "Error: failed to checkout"80 fi82 rm -rf "$cdir/.got"83 tar -czf "$outdir/$cname.tgz" -C "$tmpdir" "$cname" || die 4 "Error: failed to create tarball"84 rm -rf "$cdir"