aboutsummaryrefslogtreecommitdiff
path: root/nix/per-host/git/git-shell-commands/desc
diff options
context:
space:
mode:
Diffstat (limited to 'nix/per-host/git/git-shell-commands/desc')
-rwxr-xr-xnix/per-host/git/git-shell-commands/desc25
1 files changed, 25 insertions, 0 deletions
diff --git a/nix/per-host/git/git-shell-commands/desc b/nix/per-host/git/git-shell-commands/desc
new file mode 100755
index 0000000..cd0e569
--- /dev/null
+++ b/nix/per-host/git/git-shell-commands/desc
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+# git-shell-commands(5) subcommand: set or show a repo's description as
+# displayed in cgit.
+# Run: ssh git@git.kumardamani.net desc <name> [description...]
+
+name="${1:-}"
+case "$name" in
+ ""|*[!a-zA-Z0-9._-]*|*..*)
+ echo "usage: desc <name> [description...]" >&2
+ exit 1
+ ;;
+esac
+repo="/srv/git/$name.git"
+if [ ! -d "$repo" ]; then
+ echo "error: no such repo '$name'" >&2
+ exit 1
+fi
+shift
+if [ $# -eq 0 ]; then
+ cat "$repo/description"
+ exit 0
+fi
+printf '%s\n' "$*" > "$repo/description"
+echo "description for '$name':"
+cat "$repo/description"