Skip to content

Commit

Permalink
update lib
Browse files Browse the repository at this point in the history
  • Loading branch information
gdbtek committed Apr 15, 2019
1 parent e760be2 commit 5d90a73
Showing 1 changed file with 45 additions and 19 deletions.
64 changes: 45 additions & 19 deletions tools/clone-all-git-repositories.bash
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,32 @@ function displayUsage()
echo 'SYNOPSIS :'
echo " ${scriptName}"
echo ' --help'
echo ' --user <USER>'
echo ' --token <TOKEN>'
echo ' --clone-depth <CLONE_DEPTH>'
echo ' --clone-folder <CLONE_FOLDER>'
echo ' --git-url <GIT_URL>'
echo ' --org-name <ORGANIZATION_NAME>'
echo ' --user <USER>'
echo ' --token <TOKEN>'
echo ' --clone-depth <CLONE_DEPTH>'
echo ' --clone-folder <CLONE_FOLDER>'
echo ' --git-url <GIT_URL>'
echo ' --org-name <ORGANIZATION_NAME>'
echo ' --delete-if-exist <DELETE_IF_EXIST>'
echo -e '\033[1;35m'
echo 'DESCRIPTION :'
echo ' --help Help page (optional)'
echo ' --user User name (require)'
echo ' --token Personal access token (require)'
echo ' --clone-depth How deep your clone should go (optional)'
echo ' --clone-folder Folder path to clone all repositories to (optional)'
echo ' Default to current working directory path'
echo ' --git-url Git URL (optional)'
echo " Default to 'https://api.github.com'"
echo ' --org-name Organization name (optional)'
echo ' --help Help page (optional)'
echo ' --user User name (require)'
echo ' --token Personal access token (require)'
echo ' --clone-depth How deep your clone should go (optional)'
echo ' --clone-folder Folder path to clone all repositories to (optional)'
echo ' Default to current working directory path'
echo ' --git-url Git URL (optional)'
echo " Default to 'https://api.github.com'"
echo ' --org-name Organization name (optional)'
echo ' --delete-if-exist Delete git repository if exist'
echo " Default to 'false'"
echo -e '\033[1;36m'
echo 'EXAMPLES :'
echo " ./${scriptName} --help"
echo " ./${scriptName} --user 'user-name' --token 'a0b1c2d3e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9'"
echo " ./${scriptName} --user 'user-name' --token 'a0b1c2d3e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9' --clone-folder '/path/to/folder'"
echo " ./${scriptName} --user 'user-name' --token 'a0b1c2d3e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9' --clone-folder '/path/to/folder' --clone-depth '1' --org-name 'my-org'"
echo " ./${scriptName} --user 'user-name' --token 'a0b1c2d3e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9' --clone-folder '/path/to/folder' --clone-depth '1' --org-name 'my-org' --delete-if-exist 'true'"
echo " ./${scriptName} --user 'user-name' --token 'a0b1c2d3e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9' --clone-folder '/path/to/folder' --org-name 'my-org' --git-url 'https://my.git.com/api/v3'"

echo -e '\033[0m'
Expand All @@ -51,6 +54,7 @@ function cloneAllRepositories()
local -r gitURL="${5}"
local -r orgName="${6}"
local -r kind="${7}"
local -r deleteIfExist="${8}"

# Validation

Expand Down Expand Up @@ -95,10 +99,17 @@ function cloneAllRepositories()
do
header "CLONING '${repositorySSHURL}' IN '${rootRepository}'"

local gitRepositoryName="$(getGitRepositoryNameFromCloneURL "${repositorySSHURL}")"

# Clone Repository

cd "${rootRepository}"

if [[ "${deleteIfExist}" = 'true' ]]
then
rm -f -r "${gitRepositoryName}"
fi

if [[ "$(isEmptyString "${cloneDepth}")" = 'true' ]]
then
git clone "${repositorySSHURL}"
Expand All @@ -109,7 +120,7 @@ function cloneAllRepositories()

# Config Git

cd "$(getGitRepositoryNameFromCloneURL "${repositorySSHURL}")"
cd "${gitRepositoryName}"

if [[ "$(isEmptyString "${gitUserPrimaryEmail}")" = 'false' ]]
then
Expand Down Expand Up @@ -204,6 +215,16 @@ function main()

;;

--delete-if-exist)
shift

if [[ "${#}" -gt '0' ]]
then
local deleteIfExist="${1}"
fi

;;

*)
shift
;;
Expand All @@ -224,10 +245,15 @@ function main()
cloneFolder="$(pwd)"
fi

if [[ "$(isEmptyString "${deleteIfExist}")" = 'true' ]]
then
deleteIfExist='false'
fi

# Clone Repositories

cloneAllRepositories "${user}" "${token}" "${cloneDepth}" "${cloneFolder}" "${gitURL}" "${orgName}" 'private'
cloneAllRepositories "${user}" "${token}" "${cloneDepth}" "${cloneFolder}" "${gitURL}" "${orgName}" 'public'
cloneAllRepositories "${user}" "${token}" "${cloneDepth}" "${cloneFolder}" "${gitURL}" "${orgName}" 'private' "${deleteIfExist}"
cloneAllRepositories "${user}" "${token}" "${cloneDepth}" "${cloneFolder}" "${gitURL}" "${orgName}" 'public' "${deleteIfExist}"
}

main "${@}"

0 comments on commit 5d90a73

Please sign in to comment.