diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-09-29 13:48:44 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-09-29 13:48:44 -0700 |
commit | ae893e097ecbcbd8c6bea50017eb8cedddc5eaba (patch) | |
tree | 1a6a2ef32e722900f16db62ac76a72e29aca880a /contrib | |
parent | 02ef0ed7102a197e2b746f3e694c09915fa98060 (diff) | |
parent | 9f29fe9a779e55e7387577cd7f712de0b13b5cd6 (diff) | |
download | git-ae893e097ecbcbd8c6bea50017eb8cedddc5eaba.tar.gz |
Merge branch 'gb/shell-ext'
* gb/shell-ext:
shell: Display errors from improperly-formatted command lines
shell: Rewrite documentation and improve error message
Add sample commands for git-shell
Add interactive mode to git-shell for user-friendliness
Allow creation of arbitrary git-shell commands
Diffstat (limited to 'contrib')
-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 0000000000..438463b160 --- /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 0000000000..535770c6ec --- /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 0000000000..6f89938821 --- /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 |