diff options
-rwxr-xr-x | repo.sh | 47 |
1 files changed, 47 insertions, 0 deletions
@@ -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 + |