git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: GIT and COGITO individual scripts hidding from PATH

From
PPPavel Pisa <pisa@cmp.felk.cvut.cz>
Date
May 27, 2005, 16:29 UTC
Message-ID
<200505271829.43511.pisa@cmp.felk.cvut.cz>
In-Reply-To
<200505271824.05105.pisa@cmp.felk.cvut.cz>

Excuse me for resending of e-mail again, but I have forget to disable wrapping of lines. Sending as attachmet would be more secure, but I do not know, if it is convenient on the git list.

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.

"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" "$@" ---------------------------------------------------------------------------

Previous: Pavel Pisa
Message 5 of 5 in “Re: Slight enhancement of GIT wrapper”
  1. Petr BaudisApr 13, 2005
  2. Johannes SchindelinApr 13, 2005
  3. Johannes SchindelinApr 13, 2005
  4. GIT and COGITO individual scripts hidding from PATHPavel Pisa, May 27, 2005
  5. Pavel PisaMay 27, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.