From aed14fd480077908c73829f1aa3bb5cb9b51ccad Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Tue, 18 Nov 2025 15:37:03 +0100 Subject: [PATCH] pgit.sh clone: Support --create-remote-user-repos Add support for --create-user-repos to pgit.sh. It controls whether or not personal remote repositories on janware.com are created when cloning from another user. Signed-off-by: Jan Lindemann --- scripts/pgit.sh | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/scripts/pgit.sh b/scripts/pgit.sh index 78dc9d96..5be8cf40 100644 --- a/scripts/pgit.sh +++ b/scripts/pgit.sh @@ -110,10 +110,29 @@ clone() local login=$JANWARE_USER local projects="$PGIT_CLONE_PROJECTS" local ignore="$PGIT_IGNORE" + local create_remote_user_repos=false + [ "$login" ] || login=`whoami` [ "$fromuser" ] || fromuser=`whoami` [ "$fromref" ] || fromref=master local git_srv_admin="$SSH $login@git.janware.com /opt/jw-build/bin/git-srv-admin.sh" + + local opts + opts=$(getopt -o C --long create-remote-user-repo -n clone -- "$@") || fatal "Failed to parse options $@" + eval set -- "$opts" + while [ "$1" != -- ]; do + case "$1" in + -c | --create-remote-user-repos) + create_remote_user_repos=true + ;; + *) + fatal "Unknown option $1" + ;; + + esac + shift + done + if [ -z "$projects" ]; then projects=`$git_srv_admin -u $fromuser -j list-personal-projects` [ "$?" != 0 ] && exit 1 @@ -156,12 +175,13 @@ clone() run_git clone ssh://$login@git.janware.com/srv/git/$fromuser/proj/$p run_git -C $p remote rename origin $remotename || fatal failed to rename remote in $p run_git -C $p remote set-url --push $remotename no_push - $git_srv_admin -u $login -j create-personal-project $p - run_git -C $p remote add origin $pushurl - run_git -C $p push --recurse-submodules=on-demand origin master - $git_srv_admin -u $login -j update-descriptions $p - run_git -C $p branch --set-upstream-to origin/master master - # set +x + if [ $create_remote_user_repos = true ]; then + $git_srv_admin -u $login -j create-personal-project $p + run_git -C $p remote add origin $pushurl + run_git -C $p push --recurse-submodules=on-demand origin master + $git_srv_admin -u $login -j update-descriptions $p + run_git -C $p branch --set-upstream-to origin/master master + fi fi fi run_git -C $p submodule update --init --recursive || fatal git submodule update failed in $p