]> git.madduck.net Git - code/vcsh.git/blobdiff - vcsh

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

vcsh: More resilient variable handling for 6b22746e94bf469dd462907fd43d13a454e56ede
[code/vcsh.git] / vcsh
diff --git a/vcsh b/vcsh
index b585f5c53ee2e848cfa02477072f8180ca7c4dd5..93e9c9e2f55a1abc4a143a023714d6cbf84e1b83 100755 (executable)
--- a/vcsh
+++ b/vcsh
 # This should always be the first line of code to facilitate debugging
 [ -n "$VCSH_DEBUG" ] && set -vx
 
 # This should always be the first line of code to facilitate debugging
 [ -n "$VCSH_DEBUG" ] && set -vx
 
-basename() {
-       # Implemented in shell to avoid spawning another process
-       local file
-       file="${1%/}"
-       file="${file##*/}"
-       [ -z "$2" ] || file="${file%$2}"
-       echo "$file"
-}
-
 SELF=$(basename $0)
 SELF=$(basename $0)
-VERSION='1.20130909.git-HEAD'
+VERSION='1.20131214.git-HEAD'
 
 fatal() {
        echo "$SELF: fatal: $1" >&2
 
 fatal() {
        echo "$SELF: fatal: $1" >&2
@@ -41,11 +32,11 @@ while getopts "c:dv" flag; do
                VCSH_DEBUG=1
                echo "debug mode on"
                echo "$SELF $VERSION"
                VCSH_DEBUG=1
                echo "debug mode on"
                echo "$SELF $VERSION"
-       elif [ "$1" = '-v' ];then
+       elif [ "$1" = '-v' ]; then
                VCSH_VERBOSE=1
                echo "verbose mode on"
                echo "$SELF $VERSION"
                VCSH_VERBOSE=1
                echo "verbose mode on"
                echo "$SELF $VERSION"
-       elif [ "$1" = '-c' ];then
+       elif [ "$1" = '-c' ]; then
                VCSH_OPTION_CONFIG=$OPTARG
        fi
        shift 1
                VCSH_OPTION_CONFIG=$OPTARG
        fi
        shift 1
@@ -256,7 +247,7 @@ list_tracked_by() {
 pull() {
        hook pre-pull
        for VCSH_REPO_NAME in $(list); do
 pull() {
        hook pre-pull
        for VCSH_REPO_NAME in $(list); do
-               echo -n "$VCSH_REPO_NAME: "
+               printf "$VCSH_REPO_NAME: "
                export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
                use
                git pull
                export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
                use
                git pull
@@ -268,7 +259,7 @@ pull() {
 push() {
        hook pre-push
        for VCSH_REPO_NAME in $(list); do
 push() {
        hook pre-push
        for VCSH_REPO_NAME in $(list); do
-               echo -n "$VCSH_REPO_NAME: "
+               printf "$VCSH_REPO_NAME: "
                export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
                use
                git push
                export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
                use
                git push
@@ -369,7 +360,8 @@ write_gitignore() {
 
        # Contrary to GNU mktemp, mktemp on BSD/OSX requires a template for temp files
        # Use the template GNU mktemo defaults to
 
        # Contrary to GNU mktemp, mktemp on BSD/OSX requires a template for temp files
        # Use the template GNU mktemo defaults to
-       tempfile=$(mktemp tmp.XXXXXXXXXX) || fatal "could not create tempfile" 51
+       # The downside to this is that we need to account for unset TMPDIR
+       tempfile=$(mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX") || fatal "could not create tempfile: '${tempfile}'" 51
 
        echo '*' > "$tempfile" || fatal "could not write to '$tempfile'" 57
        for gitignore in $gitignores; do
 
        echo '*' > "$tempfile" || fatal "could not write to '$tempfile'" 57
        for gitignore in $gitignores; do