]>
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:
if [ "$1" = '-d' ] || [ "$1" = '--debug' ]; then
set -vx
VCSH_DEBUG=1
if [ "$1" = '-d' ] || [ "$1" = '--debug' ]; then
set -vx
VCSH_DEBUG=1
elif [ "$1" = '-v' ];then
VCSH_VERBOSE=1
elif [ "$1" = '-c' ];then
elif [ "$1" = '-v' ];then
VCSH_VERBOSE=1
elif [ "$1" = '-c' ];then
- # Source $OPTARG if it can be read and has an absolute or relative
- # path or is in $PATH
- if [ -r "$OPTARG" ]; then
- . "$OPTARG"
- else
- fatal "Can not read configuration file '$OPTARG'" 1
- fi
+ VCSH_OPTION_CONFIG=$OPTARG
+source_all() {
+ # Source file even if it's in $PWD and does not have any slashes in it
+ case "$1" in
+ */*) . "$1";;
+ *) . "$PWD/$1";;
+ esac;
+}
+
+# Read configuration and set defaults if anything's not set
[ -n "$VCSH_DEBUG" ] && set -vx
[ -z "$XDG_CONFIG_HOME" ] && XDG_CONFIG_HOME="$HOME/.config"
[ -n "$VCSH_DEBUG" ] && set -vx
[ -z "$XDG_CONFIG_HOME" ] && XDG_CONFIG_HOME="$HOME/.config"
+
+# Read configuration files if there are any
+[ -r "/etc/vcsh/config" ] && . "/etc/vcsh/config"
[ -r "$XDG_CONFIG_HOME/vcsh/config" ] && . "$XDG_CONFIG_HOME/vcsh/config"
[ -r "$XDG_CONFIG_HOME/vcsh/config" ] && . "$XDG_CONFIG_HOME/vcsh/config"
+if [ -n "$VCSH_OPTION_CONFIG" ]; then
+ # Source $VCSH_OPTION_CONFIG if it can be read and is in $PWD of $PATH
+ if [ -r "$VCSH_OPTION_CONFIG" ]; then
+ source_all "$VCSH_OPTION_CONFIG"
+ else
+ fatal "Can not read configuration file '$VCSH_OPTION_CONFIG'" 1
+ fi
+fi
[ -n "$VCSH_DEBUG" ] && set -vx
[ -n "$VCSH_DEBUG" ] && set -vx
[ -z "$VCSH_REPO_D" ] && VCSH_REPO_D="$XDG_CONFIG_HOME/vcsh/repo.d"
[ -z "$VCSH_HOOK_D" ] && VCSH_HOOK_D="$XDG_CONFIG_HOME/vcsh/hooks-enabled"
[ -z "$VCSH_BASE" ] && VCSH_BASE="$HOME"
[ -z "$VCSH_GITIGNORE" ] && VCSH_GITIGNORE='exact'
[ -z "$VCSH_REPO_D" ] && VCSH_REPO_D="$XDG_CONFIG_HOME/vcsh/repo.d"
[ -z "$VCSH_HOOK_D" ] && VCSH_HOOK_D="$XDG_CONFIG_HOME/vcsh/hooks-enabled"
[ -z "$VCSH_BASE" ] && VCSH_BASE="$HOME"
[ -z "$VCSH_GITIGNORE" ] && VCSH_GITIGNORE='exact'
help() {
echo "usage: $SELF <options> <command>
options:
help() {
echo "usage: $SELF <options> <command>
options:
- -c <file> Source file prior to other configuration files
commands:
clone <remote> \\
[<repo>] Clone from an existing repository
commands:
clone <remote> \\
[<repo>] Clone from an existing repository
- delete Delete an existing repository
- enter Enter repository; spawn new instance of \$SHELL
+ delete <repo> Delete an existing repository
+ enter <repo> Enter repository; spawn new instance of \$SHELL
help Display this help text
init <repo> Initialize a new repository
list List all repositories
help Display this help text
init <repo> Initialize a new repository
list List all repositories
<newname> Rename repository
run <repo> \\
<command> Use this repository
<newname> Rename repository
run <repo> \\
<command> Use this repository
- setup Set up repository with recommended settings
+ setup <repo> Set up repository with recommended settings
which <substring> Find substring in name of any tracked file
write-gitignore \\
<repo> Write .gitignore.d/<repo> via git ls-files
which <substring> Find substring in name of any tracked file
write-gitignore \\
<repo> Write .gitignore.d/<repo> via git ls-files
for file in $files; do
rm -f $file || info "could not delete '$file', continuing with deletion"
done
for file in $files; do
rm -f $file || info "could not delete '$file', continuing with deletion"
done
- rm -r "$GIT_DIR" || error "could not delete '$GIT_DIR'"
+ rm -rf "$GIT_DIR" || error "could not delete '$GIT_DIR'"