aboutsummaryrefslogtreecommitdiff
path: root/cgit/ssh/git-shell-commands/_utils/input.sh
blob: d8842ba25bbe61fedc6e050649736667a79dada0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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"
}