Skip to content

Commit

Permalink
Add sample commands for git-shell
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
Greg Brockman authored and gitster committed Aug 12, 2010
1 parent e69164d commit 54baefd
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 0 deletions.
18 changes: 18 additions & 0 deletions contrib/git-shell-commands/README
Original file line number Diff line number Diff line change
@@ -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 changes: 18 additions & 0 deletions contrib/git-shell-commands/help
Original file line number Diff line number Diff line change
@@ -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 changes: 10 additions & 0 deletions contrib/git-shell-commands/list
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 54baefd

Please sign in to comment.