aboutsummaryrefslogtreecommitdiff
path: root/cgit/ssh/git-shell-commands/_utils
diff options
context:
space:
mode:
Diffstat (limited to 'cgit/ssh/git-shell-commands/_utils')
-rw-r--r--cgit/ssh/git-shell-commands/_utils/input.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/cgit/ssh/git-shell-commands/_utils/input.sh b/cgit/ssh/git-shell-commands/_utils/input.sh
new file mode 100644
index 0000000..d8842ba
--- /dev/null
+++ b/cgit/ssh/git-shell-commands/_utils/input.sh
@@ -0,0 +1,27 @@
+
+input_repo_name() {
+ repo_name="$(gum input --header "Repo name (alphanumeric + hyphen/dashes)")"
+ [ -z "$repo_name" ] && echo "Error: empty repo name" 1>&2 && exit 1
+ (echo "$repo_name" | grep -q "^[A-Za-z0-9_-]\+$" 2>/dev/null) || (echo "Error: invalid repo name" 1>&2 && exit 1)
+ echo "$repo_name"
+}
+
+input_repo_description() {
+ description="$( (cat "$1/description" 2>/dev/null || true) | gum write --header "Repo description")"
+ [ -z "$description" ] && echo "Error: empty description" 1>&2 && exit 1
+ echo "$description"
+}
+
+input_repo_remote_url() {
+ remote_repo_url="$(gum input --header "Repo url")";
+ [ -z "$remote_repo_url" ] && echo "Error: empty repo url" 1>&2 && exit 1
+ echo "$remote_repo_url"
+}
+
+select_repo_name() {
+ ls -1 /git | gum choose --header "Repo"
+}
+
+input_repo_category() {
+ (git -C "$1" config get gitweb.category 2>/dev/null || true) | gum input --header "Category"
+}