| @ -0,0 +1,70 @@ | |||
| #!/bin/sh | |||
| # | |||
| # git-vendor.sh: manage vendored repos via git-subtree | |||
| # | |||
| # Copyright (C) 2016 Brett Langdon <me@brett.is> | |||
| # | |||
| if [ $# -eq 0 ]; | |||
| then | |||
| set -- -h | |||
| fi | |||
| OPTS_SPEC="\ | |||
| git vendor add <repository> <ref> | |||
| git vendor list | |||
| git vendor update <repository> <ref> | |||
| -- | |||
| " | |||
| eval "$(echo "$OPTS_SPEC" | git rev-parse --parseopt -- "$@" || echo exit $?)" | |||
| PATH=$PATH:$(git --exec-path) | |||
| . git-sh-setup | |||
| require_work_tree | |||
| while [ $# -gt 0 ]; do | |||
| opt="$1" | |||
| shift | |||
| case "$opt" in | |||
| --) break ;; | |||
| *) die "Unexpected option: $opt" ;; | |||
| esac | |||
| done | |||
| command="$1" | |||
| shift | |||
| case "$command" in | |||
| add|list|update) ;; | |||
| *) die "Unknown command '$command'" ;; | |||
| esac | |||
| cmd_add() | |||
| { | |||
| repository="$1" | |||
| ref="$2" | |||
| if [ $# -ne 2 ]; | |||
| then | |||
| die "Incorrect options provided: git vendor add <repository> <ref>" | |||
| fi | |||
| dir="vendor/$(echo "$repository" | sed -E 's/^[a-zA-Z]+((:\/\/)|@)//' | sed 's/:/\//' | sed -E 's/\.git$//')" | |||
| message="\ | |||
| Add '$dir/' from '$repository $ref' | |||
| git-subtree-repository: $repository | |||
| git-subtree-ref: $ref | |||
| " | |||
| git subtree add --prefix "$dir" --message "$message" "$repository" "$ref" | |||
| } | |||
| cmd_list() | |||
| { | |||
| die "Not implemented" | |||
| } | |||
| cmd_update() | |||
| { | |||
| die "Not implemented" | |||
| } | |||
| "cmd_$command" "$@" | |||