chiark / gitweb /
Make "tg help cmd" print cmd help
[topgit.git] / tg-create.sh
index b5c7789315b6d6448b407ab2370013ebbd34a62c..6cce7edebc1102bc9cfe86226f96ee40bc1ab8c0 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] $name"
        echo
        cat <<EOT
 <patch description>
@@ -114,5 +120,5 @@ git add "$root_dir/.topmsg"
 
 
 
-info "Topic branch $name successfully set up. Please fill .topmsg now."
-info "You MUST do an initial commit. To abort: git rm -f .top* && git checkout ${deps%% *} && tg delete $name"
+info "Topic branch $name set up. Please fill .topmsg now and make initial commit."
+info "To abort: git rm -f .top* && git checkout ${deps%% *} && tg delete $name"