]> git.phdru.name Git - git-scripts.git/commitdiff
Feat(sparse-clone): Add options parser
authorOleg Broytman <phd@phdru.name>
Tue, 12 May 2020 12:07:01 +0000 (15:07 +0300)
committerOleg Broytman <phd@phdru.name>
Tue, 12 May 2020 12:07:01 +0000 (15:07 +0300)
Parametrize branch (default is master)
and local directory (default is the name of the remote repo).

sparse-clone

index 0037a861eeb8d646aad477a229fb72bc86ab84da..2c37c7741e0eac4ab8ebdc7a2cd06837ac32df59 100755 (executable)
@@ -2,14 +2,24 @@
 # Adapted from https://stackoverflow.com/a/13738951/7976758
 set -e
 
-if [ -z "$3" ]; then
-   echo "Usage: $0 origin local patterns..." >&2
+while getopts b:l: opt; do
+   case $opt in
+      b ) branch="$OPTARG" ;;
+      l ) local_repo="$OPTARG" ;;
+   esac
+done
+shift `expr $OPTIND - 1`
+
+if [ -z "$2" ]; then
+   echo "Usage: $0 [-b branch] [-l local] origin patterns..." >&2
    exit 1
 fi
 
 origin="$1"
-local_repo="$2"
-shift 2
+shift
+
+test -z "$branch" && branch=master
+test -z "$local_repo" && local_repo="`basename \"$origin\" .git`"
 
 mkdir -p "$local_repo"
 cd "$local_repo"
@@ -24,4 +34,4 @@ for arg; do
   echo "$arg" >> .git/info/sparse-checkout
 done
 
-exec git pull origin master
+exec git pull origin $branch