diff options
author | Patrick Spek <p.spek@tyil.nl> | 2020-01-06 18:27:31 +0100 |
---|---|---|
committer | Patrick Spek <p.spek@tyil.nl> | 2020-01-06 18:27:31 +0100 |
commit | 76ce82ea2d44212c985ebe94b3ccdcb31da0f83f (patch) | |
tree | e4805dfa88660bdd49007cecdfa9e1dc0309f2ff /.local/bin | |
parent | fd0248d2f8f7c7fb7cda213e0c56d68329b3ad79 (diff) |
Add git-mkbare
Diffstat (limited to '.local/bin')
-rwxr-xr-x | .local/bin/git-mkbare | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/.local/bin/git-mkbare b/.local/bin/git-mkbare new file mode 100755 index 0000000..bd9615c --- /dev/null +++ b/.local/bin/git-mkbare @@ -0,0 +1,64 @@ +#! /usr/bin/env sh + +main() +{ + # Handle opts + opts "$@" + shift "$OPTS" + unset OPTS + + # Show help + [ "$OPT_HELP_ONLY" ] && usage && exit 0 + + location=$(readlink -f "${1:-$PWD}") + + # Prompt for location + printf "%s: [%s] " "Path" "$location" + read -r input + [ -z "$input" ] || location=$(readlink -f "$input") + unset input + + # Prompt for description + printf "%s: " "Description" + read -r description + + # Create the bare git repository + mkdir -p "$location" + cd -- "$location" + git --bare init + + # Update the description, if given + printf "%s\n" "$description" > "$location/description" +} + +opts() +{ + OPTS=0 + + while getopts ":h" opt + do + case "$opt" in + h) OPT_HELP_ONLY=1 ;; + *) + printf "Invalid option passed: %s\n" "$OPTARG" >&2 + ;; + esac + done + + unset opt +} + +usage() +{ + cat <<EOF +Usage: + $(basename "$0") -h + +Create a bare git repository at a target location. + +Options: + -h Show this help text and exit. +EOF +} + +main "$@" |