From d1c2194ee56f848e9dd94bd44d03f5bc8b10f008 Mon Sep 17 00:00:00 2001 From: Wryn Wagner Date: Tue, 29 Sep 2020 18:49:13 -0600 Subject: [PATCH] Added rnt clone function --- zsh/rentdynamics | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/zsh/rentdynamics b/zsh/rentdynamics index fdf7b95..63f5f7c 100644 --- a/zsh/rentdynamics +++ b/zsh/rentdynamics @@ -43,6 +43,9 @@ function rnt() { op | 1pass ) RENT_DYNAMICS_ONE_PASSWORD "${@:2}" || ERROR_CODE=6; ;; + clone ) + RENT_DYNAMICS_GIT_PROJECT_SET_UP "${@:2}" || ERROR_CODE=7; + ;; *) deactivate >/dev/null 2>/dev/null || deactivate_node >/dev/null 2>/dev/null; cd "$RD_PATH" @@ -68,7 +71,7 @@ _rnt () { # autocompletion case "$state" in project_or_command) compadd $(ls "$RD_PATH"); - compadd db refresh_db cleanup mail status op; + compadd db refresh_db cleanup mail status op clone; ;; command_args) [ $words[2] == 'status' ] && _RENT_DYNAMICS_UPDATE_SLACK_STATUS; @@ -273,3 +276,18 @@ RENT_DYNAMICS_ONE_PASSWORD_CHECK_LOGIN() { RENT_DYNAMICS_ONE_PASSWORD_IS_LOGGED_IN() { op list templates >/dev/null 2>&1 && return 0 || return 1; } + +RENT_DYNAMICS_GIT_PROJECT_SET_UP() { + PROJECT_URL="git@github.com:RentDynamics/$1.git"; + PROJECT_DIR="$RD_PATH/$1"; + + [ -d "$PROJECT_DIR" ] \ + && { echo "Project '$1' already exists locally (access quickly with 'rnt $1')."; return 1; } + + git ls-remote "$PROJECT_URL" >/dev/null || return 2; + + mkdir "$PROJECT_DIR" >/dev/null 2>&1; + git clone -q "$PROJECT_URL" "$PROJECT_DIR/code" \ + && echo "Succesfully cloned project '$1' (access quickly with 'rnt $1')." \ + || { echo "$PROJECT_DIR"; rm -rI "$PROJECT_DIR" } +}