Add sample commands for git-shell
Provide a 'list' command to view available bare repositories ending in .git and a 'help command to display usage. Also add documentation in a README Signed-off-by: Greg Brockman <gdb@mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e69164ddb9
commit
54baefda8c
18
contrib/git-shell-commands/README
Normal file
18
contrib/git-shell-commands/README
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
Sample programs callable through git-shell. Place a directory named
|
||||||
|
'git-shell-commands' in the home directory of a user whose shell is
|
||||||
|
git-shell. Then anyone logging in as that user will be able to run
|
||||||
|
executables in the 'git-shell-commands' directory.
|
||||||
|
|
||||||
|
Provided commands:
|
||||||
|
|
||||||
|
help: Prints out the names of available commands. When run
|
||||||
|
interactively, git-shell will automatically run 'help' on startup,
|
||||||
|
provided it exists.
|
||||||
|
|
||||||
|
list: Displays any bare repository whose name ends with ".git" under
|
||||||
|
user's home directory. No other git repositories are visible,
|
||||||
|
although they might be clonable through git-shell. 'list' is designed
|
||||||
|
to minimize the number of calls to git that must be made in finding
|
||||||
|
available repositories; if your setup has additional repositories that
|
||||||
|
should be user-discoverable, you may wish to modify 'list'
|
||||||
|
accordingly.
|
18
contrib/git-shell-commands/help
Executable file
18
contrib/git-shell-commands/help
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if tty -s
|
||||||
|
then
|
||||||
|
echo "Run 'help' for help, or 'exit' to leave. Available commands:"
|
||||||
|
else
|
||||||
|
echo "Run 'help' for help. Available commands:"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
|
for cmd in *
|
||||||
|
do
|
||||||
|
case "$cmd" in
|
||||||
|
help) ;;
|
||||||
|
*) [ -f "$cmd" ] && [ -x "$cmd" ] && echo "$cmd" ;;
|
||||||
|
esac
|
||||||
|
done
|
10
contrib/git-shell-commands/list
Executable file
10
contrib/git-shell-commands/list
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
print_if_bare_repo='
|
||||||
|
if "$(git --git-dir="$1" rev-parse --is-bare-repository)" = true
|
||||||
|
then
|
||||||
|
printf "%s\n" "${1#./}"
|
||||||
|
fi
|
||||||
|
'
|
||||||
|
|
||||||
|
find -type d -name "*.git" -exec sh -c "$print_if_bare_repo" -- \{} \; -prune 2>/dev/null
|
Loading…
x
Reference in New Issue
Block a user