chiark / gitweb /
tg-create.sh: Introduce topgit.subjectprefix config option
[topgit.git] / tg-create.sh
index 8d39f46fe7c067438ff0249e2c4f7c865622ea8b..68c3fdd18bf253ed706016dbddee2b6a0915f848 100644 (file)
@@ -14,28 +14,30 @@ name=
 while [ -n "$1" ]; do
        arg="$1"; shift
        case "$arg" in
-       -d)
-               deps="$(echo "$1" | sed 's/,/ /g')"; shift;;
        -*)
-               echo "Usage: tg create [-d DEPS...] NAME" >&2
+               echo "Usage: tg create NAME [DEPS...]" >&2
                exit 1;;
        *)
-               [ -z "$name" ] || die "name already specified ($name)"
-               name="$arg";;
+               if [ -z "$name" ]; then
+                       name="$arg"
+               else
+                       deps="$deps $arg"
+               fi;;
        esac
 done
 
 
 ## Auto-guess dependencies
 
+deps="${deps# }"
 if [ -z "$deps" ]; then
        head="$(git symbolic-ref HEAD)"
-       bname="${heads#refs/top-bases/}"
+       bname="${head#refs/top-bases/}"
        if [ "$bname" != "$head" -a -s "$git_dir/top-deps" -a -s "$git_dir/top-merge" ]; then
                # We are on a base branch now; resume merge!
                deps="$(cat "$git_dir/top-deps")"
-               merge="$(cat "$git_dir/top-merge") "
-               name="$base"
+               merge="$(cat "$git_dir/top-merge")"
+               name="$bname"
                restarted=1
                info "Resuming $name setup..."
        else
@@ -102,7 +104,11 @@ author="$(git var GIT_AUTHOR_IDENT)"
 author_addr="${author%> *}>"
 {
        echo "From: $author_addr"
-       echo "Subject: [PATCH] $1"
+       ! header="$(git config topgit.to)" || echo "To: $header"
+       ! header="$(git config topgit.cc)" || echo "Cc: $header"
+       ! header="$(git config topgit.bcc)" || echo "Bcc: $header"
+       ! subject_prefix="$(git config topgit.subjectprefix)" || subject_prefix="$subject_prefix "
+       echo "Subject: [${subject_prefix}PATCH] $1"
        echo
        cat <<EOT
 <patch description>