GIT and COGITO individual scripts hidding from PATH
- From
- Pavel Pisa <pisa@cmp.felk.cvut.cz>
- Date
- May 27, 2005, 16:24 UTC
- Message-ID
- <200505271824.05105.pisa@cmp.felk.cvut.cz>
- In-Reply-To
- <20050524111333.GA11223@pasky.ji.cz>
Hello All,
I prefer to have as small number of executables in /usr/bin and /user/local/bin as possible. I have tried to push original Peter's git script to this direction for my strange personal taste. COGITO has taken different direction than. I have hidden cogito and git under wrapper to make me happy again. I thing that it is against good opensource habits to keep changes secret even if I do not expect interrest in this version. But may it be, that it can make happy somebody with same taste as I have.
The "cgt" is wrapper for all cogito programs. If cogito is build and installed to any prefix directory (/opt/git-cogito in my case) and script is copied to bin subdirectory (/opt/git-cogito/bin), then only single symbolic link from some searchable directory on PATH is enough to call all cogito commands cgt pull cgt update so usage is more convenient for my fingers learned to type cvs up, etc. I think, that addition of intelligent bash completion could be done easier if number of the first level commands to cover is smaller.
Best wishes
Pavel Pisa
"cgt" script -------------------------------------------------------------------------------- #!/usr/bin/env bash # # The GIT scripted toolkit. # Copyright (c) Petr Baudis, 2005 # # Script to automatically wrap individual GIT commands under one script # for those, who prefer only one or two links in /usr/local/bin # This script added by Pavel Pisa <pisa@cmp.felk.cvut.cz> # # This command mostly only multiplexes to the individual scripts based # on the first argument.
error () {
echo cgt: $@ >&2
}
die () {
error $@
exit 1
}if [ -z "$GIT_TOOLS_DIR" ] ; then GIT_MUXBINARY_DIR="$(dirname "$0")" if [ -h "$0" ]; then #GIT_TOOLS_DIR="$(ls -l "$0" | sed 's/^.*-> *\(.*\) *$/\1/')" GIT_TOOLS_DIR="$(readlink -f -n $0)" GIT_TOOLS_DIR="$(dirname "$GIT_TOOLS_DIR")" GIT_TOOLS_DIR="$(cd "$GIT_MUXBINARY_DIR" ; cd "$GIT_TOOLS_DIR" ; pwd )" else GIT_TOOLS_DIR="$(cd "$GIT_MUXBINARY_DIR" ; pwd )" fi
if [ -z "$(echo :$PATH: | sed -n -e 's#:'"$GIT_TOOLS_DIR"':#yes#p' )" ] ; then export PATH="$GIT_TOOLS_DIR:$PATH" fi
export GIT_TOOLS_DIR fi
#echo =$GIT_TOOLS_DIR #echo PATH=$PATH #echo CWD=$(pwd) #exit
help () {
echo "cgt recognizes next commands:" >&2
(cd $GIT_TOOLS_DIR ; ls cg-* ) | sed -n -e 's/\<cg-\([^ ]*\)\>/\1/pg' >&2
}cmd=$1; shift
if [ ! "$cmd" ]; then error "missing command" help exit 1 fi
cgt_cmd_exe="${GIT_TOOLS_DIR}/cg-$cmd"if [ ! -e "$cgt_cmd_exe" ]; then
error "unrecognized command ${cmd}"
help
exit 1
fi"$cgt_cmd_exe" "$@" --------------------------------------------------------------------------------
"git" script -------------------------------------------------------------------------------- #!/usr/bin/env bash # # The GIT scripted toolkit. # Copyright (c) Petr Baudis, 2005 # # Script to automatically wrap individual GIT commands under one script # for those, who prefer only one or two links in /usr/local/bin # This script added by Pavel Pisa <pisa@cmp.felk.cvut.cz> # # This command mostly only multiplexes to the individual scripts based # on the first argument.
error () {
echo git: $@ >&2
}
die () {
error $@
exit 1
}if [ -z "$GIT_TOOLS_DIR" ] ; then GIT_MUXBINARY_DIR="$(dirname "$0")" if [ -h "$0" ]; then #GIT_TOOLS_DIR="$(ls -l "$0" | sed 's/^.*-> *\(.*\) *$/\1/')" GIT_TOOLS_DIR="$(readlink -f -n $0)" GIT_TOOLS_DIR="$(dirname "$GIT_TOOLS_DIR")" GIT_TOOLS_DIR="$(cd "$GIT_MUXBINARY_DIR" ; cd "$GIT_TOOLS_DIR" ; pwd )" else GIT_TOOLS_DIR="$(cd "$GIT_MUXBINARY_DIR" ; pwd )" fi
if [ -z "$(echo :$PATH: | sed -n -e 's#:'"$GIT_TOOLS_DIR"':#yes#p' )" ] ; then export PATH="$GIT_TOOLS_DIR:$PATH" fi
export GIT_TOOLS_DIR fi
#echo =$GIT_TOOLS_DIR #echo PATH=$PATH #echo CWD=$(pwd) #exit
help () {
echo "git recognizes next commands:" >&2
(cd $GIT_TOOLS_DIR ; ls git-* ) | sed -n -e 's/\<git-\([^ ]*\)\>/\1/pg' >&2
}cmd=$1; shift
if [ ! "$cmd" ]; then error "missing command" help exit 1 fi
git_cmd_exe="${GIT_TOOLS_DIR}/git-$cmd"if [ ! -e "$git_cmd_exe" ]; then
error "unrecognized command ${cmd}"
help
exit 1
fi"$git_cmd_exe" "$@" --------------------------------------------------------------------------------