diff --git a/.forgejo/workflows/debian:bookworm.yaml b/.forgejo/workflows/debian:bookworm.yaml index 776457b..976d9ae 100644 --- a/.forgejo/workflows/debian:bookworm.yaml +++ b/.forgejo/workflows/debian:bookworm.yaml @@ -13,4 +13,4 @@ jobs: - run: cd-clone-branch - run: cd-build-project - run: cd-browse-workspace - - run: cd-synchronize + - run: cd-synchronize out diff --git a/cd/__init__.py b/cd/__init__.py index b2cc47a..ac39077 100644 --- a/cd/__init__.py +++ b/cd/__init__.py @@ -55,24 +55,6 @@ def cd_list_environment(): print(variable, '=', value) -def cd_synchronize(): - sync_host = 'rwx.work' - sync_source = 'out' - sync_user = 'cd' - # - sync_root = f'/{sync_user}/{project.branch}/{project.name}' - # - sync_target = f'{sync_user}@{sync_host}:{sync_root}' - ps.run('rsync', - '--archive', - '--delete-before', - '--verbose', - f'{sync_source}/', - f'{sync_target}/', - '--dry-run', - ) - - def install_commands(path): user = '/usr/local/bin' for command in [ @@ -80,7 +62,6 @@ def install_commands(path): 'build-project', 'clone-branch', 'list-environment', - 'synchronize', ]: print(command) os.symlink(path, os.path.join(user, f'{COMMANDS_PREFIX}{command}')) diff --git a/cmd/cd-synchronize.sh b/cmd/cd-synchronize.sh new file mode 100755 index 0000000..437df02 --- /dev/null +++ b/cmd/cd-synchronize.sh @@ -0,0 +1,23 @@ +[ "${1}" ] && SYNC_SOURCE="${1}" || exit + +SYNC_USER='cd' + +[ "${GITHUB_SERVER_URL}" ] \ +&& SYNC_HOST="$(basename ${GITHUB_SERVER_URL})" || exit + +[ "${SYNC_USER}" ] \ +&& SYNC_ROOT="/${SYNC_USER}" || exit +[ "${GITHUB_REF_NAME}" ] \ +&& SYNC_ROOT="${SYNC_ROOT}/${GITHUB_REF_NAME}" || exit +[ "${GITHUB_REPOSITORY}" ] \ +&& SYNC_ROOT="${SYNC_ROOT}/${GITHUB_REPOSITORY}" || exit + +SYNC_TARGET="${SYNC_USER}@${SYNC_HOST}:${SYNC_ROOT}" +[ "${2}" ] && SYNC_TARGET="${SYNC_TARGET}/${2}" + +rsync \ +--archive \ +--delete-before \ +--verbose \ +"${SYNC_SOURCE}/" \ +"${SYNC_TARGET}/" diff --git a/readme.md b/readme.md index ebec849..2492ead 100644 --- a/readme.md +++ b/readme.md @@ -69,7 +69,6 @@ from various CA, CI, OCI / OS. * write bats -* detect private key type * handle git cloning credentials * reduce single conditions with && * write Python bootstrap process