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