From f5368c71097625ecf3e90f5a5eca1850fadbf6df Mon Sep 17 00:00:00 2001 From: jc <46619361+juancwu@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:12:09 -0400 Subject: [PATCH] (bash) update repo cl function --- bash/.bashrc.arch | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/bash/.bashrc.arch b/bash/.bashrc.arch index 3b2ae0c..d1397a6 100644 --- a/bash/.bashrc.arch +++ b/bash/.bashrc.arch @@ -145,25 +145,37 @@ fcd() { cl() { local url=$1 local ghq_dir="$HOME/ghq" + local argc=$# + local project_name="" + local repository_name="" + local url="" # extract project name - if [[ $url =~ git@github\.com:([^/]+)/([^/]+)\.git ]]; then - local project_name="${BASH_REMATCH[1]}" - local repository_name="${BASH_REMATCH[2]}" - elif [[ $url =~ https://github\.com/([^/]+)/([^/]+)\.git ]]; then - local project_name="${BASH_REMATCH[1]}" - local repository_name="${BASH_REMATCH[2]}" + if [[ $url =~ git@git(lab|hub)\.com:([^/]+)/([^/]+)\.git ]]; then + local project_name="${BASH_REMATCH[2]}" + local repository_name="${BASH_REMATCH[3]}" + elif [[ $url =~ https://git(lab|hub)\.com/([^/]+)/([^/]+)\.git ]]; then + local project_name="${BASH_REMATCH[2]}" + local repository_name="${BASH_REMATCH[3]}" elif [[ $# -ne 0 ]]; then - local project_name="juancwu" - local repository_name="$url" - local url="git@github.com:juancwu/$repository_name.git" + repository_name=$1 + namespace="juancwu" + # default domain to github + local domain="hub" + # possible domain given + if [[ $# -eq 2 ]]; then + domain=$1 + repository_name=$2 + fi + url="git@git$domain.com:$namespace/$repository_name.git" else echo -e "$ERROR Invalid URL format" return 1 fi # check if directory for project exists or not - local project_dir="${ghq_dir}/${project_name}/${repository_name}" + local project_dir="${ghq_dir}/${namespace}/${repository_name}" + echo $project_dir if [[ ! -d $project_dir ]]; then mkdir -p $project_dir fi