diff options
author | Greg Brockman <gdb@MIT.EDU> | 2010-07-28 00:43:04 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-08-12 15:16:31 -0700 |
commit | 54baefda8c0bbee461a4cd68dca970d92fddced0 (patch) | |
tree | 65d0c395c0bd63da14713a2c3ee3c9d132a48023 /contrib/git-shell-commands | |
parent | e69164ddb9d6092a94915bb984749d48f598cea8 (diff) | |
download | git-54baefda8c0bbee461a4cd68dca970d92fddced0.tar.gz git-54baefda8c0bbee461a4cd68dca970d92fddced0.tar.xz |
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>
Diffstat (limited to 'contrib/git-shell-commands')
-rw-r--r-- | contrib/git-shell-commands/README | 18 | ||||
-rwxr-xr-x | contrib/git-shell-commands/help | 18 | ||||
-rwxr-xr-x | contrib/git-shell-commands/list | 10 |
3 files changed, 46 insertions, 0 deletions
diff --git a/contrib/git-shell-commands/README b/contrib/git-shell-commands/README new file mode 100644 index 000000000..438463b16 --- /dev/null +++ b/contrib/git-shell-commands/README @@ -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. diff --git a/contrib/git-shell-commands/help b/contrib/git-shell-commands/help new file mode 100755 index 000000000..535770c6e --- /dev/null +++ b/contrib/git-shell-commands/help @@ -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 diff --git a/contrib/git-shell-commands/list b/contrib/git-shell-commands/list new file mode 100755 index 000000000..6f8993882 --- /dev/null +++ b/contrib/git-shell-commands/list @@ -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 |