diff --git a/bin/clone-all-gitea-repos.sh b/bin/clone-all-gitea-repos.sh index 652f173..ab287a4 100755 --- a/bin/clone-all-gitea-repos.sh +++ b/bin/clone-all-gitea-repos.sh @@ -9,15 +9,30 @@ if [ -z "$GITEA_HOST" ] || [ -z "$GITEA_ACCESS_TOKEN" ] ; then exit 1 fi -for i in $(curl -s --header "Authorization: token $GITEA_ACCESS_TOKEN" "${GITEA_HOST}/api/v1/user/repos?limit=50" | jq -r 'map(.name + "," + .ssh_url) | flatten[]') ; do +mkdir -p archived +for i in $(curl -s --header "Authorization: token $GITEA_ACCESS_TOKEN" "${GITEA_HOST}/api/v1/user/repos?limit=50" | jq -r 'map(.name + "," + .ssh_url + "," + (.archived | tostring)) | flatten[]') ; do OLDIFS=$IFS IFS=',' set -- $i - if [ -d $1 ] ; then - echo "Repo $1 already exists, skipping." + if [ "$3" == "true" ] ; then + if [ -d $1 ] ; then + echo "Moving $1 into archived/$1..." + mv $1 archived/ + else + if [ -d "archived/$1" ] ; then + echo "Archived repo $1 already exists, skipping." + else + echo "Cloning archived/$1 from $2" + git clone -q $2 archived/$1 + fi + fi else - echo "Cloning $1 from $2" - git clone -q $2 + if [ -d $1 ] ; then + echo "Repo $1 already exists, skipping." + else + echo "Cloning $1 from $2" + git clone -q $2 + fi fi IFS=$OLDIFS done