aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xrepo.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/repo.sh b/repo.sh
new file mode 100755
index 0000000..eb7db2f
--- /dev/null
+++ b/repo.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+set -e
+
+repo_location="/srv/git/"
+
+trimmed_repos=""
+get_repos () {
+ trimmed_repos=()
+ repos=$(ssh marks.kitchen "ls -d $repo_location*.git")
+ for repo in $repos
+ do
+ repo_trim=$(basename $repo | cut -f 1 -d '.')
+ trimmed_repos+="$repo_trim "
+ done
+}
+
+create_repo () {
+ dir="$repo_location$1.git"
+ ssh git@marks.kitchen "mkdir $dir"
+ ssh git@marks.kitchen "cd \"$dir\"; git init --bare; touch git-daemon-export-ok"
+}
+
+case $1 in
+ create) # init a git repo here and create one on the server
+ create_repo $2
+ dir="$repo_location$2.git"
+ printf "git init\n"
+ printf "git remote add origin git@marks.kitchen:/srv/git/$dir\n"
+ printf "git push origin master\n"
+ ;;
+ list) # list repos on the server
+ get_repos
+ for repo in $trimmed_repos
+ do
+ printf "$repo\n"
+ done
+ ;;
+ clone) # clone a repo from the list
+ dir="$repo_location$2.git"
+ git clone git@marks.kitchen:/srv/git/$dir
+ cd $dir
+ ;;
+ *)
+ printf "usage: ./repo [create|list|clone] args\n"
+ ;;
+esac
+