From 3f0a4f815c832b79c56908745387e342c654b8df Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Thu, 30 May 2024 18:18:26 +0200 Subject: [PATCH 1/7] cd-clone-branch --- .forgejo/workflows/almalinux:8.yaml | 1 + .forgejo/workflows/almalinux:9.yaml | 1 + .forgejo/workflows/alpine:3.18.yaml | 1 + .forgejo/workflows/alpine:3.19.yaml | 1 + .forgejo/workflows/archlinux:base-20231112.0.191179.yaml | 1 + .forgejo/workflows/archlinux:base-20240101.0.204074.yaml | 1 + .forgejo/workflows/debian:bullseye.yaml | 1 + .forgejo/workflows/fedora:39.yaml | 1 + .forgejo/workflows/fedora:40.yaml | 1 + .forgejo/workflows/rockylinux:8.yaml | 1 + .forgejo/workflows/rockylinux:9.yaml | 1 + .forgejo/workflows/ubuntu:jammy.yaml | 1 + .forgejo/workflows/ubuntu:noble.yaml | 1 + .gitlab-ci.yml | 1 - 14 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/almalinux:8.yaml b/.forgejo/workflows/almalinux:8.yaml index 34df8b8..830163f 100644 --- a/.forgejo/workflows/almalinux:8.yaml +++ b/.forgejo/workflows/almalinux:8.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/almalinux:9.yaml b/.forgejo/workflows/almalinux:9.yaml index d510837..9acc6ff 100644 --- a/.forgejo/workflows/almalinux:9.yaml +++ b/.forgejo/workflows/almalinux:9.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/alpine:3.18.yaml b/.forgejo/workflows/alpine:3.18.yaml index ecf81ce..ee2fe16 100644 --- a/.forgejo/workflows/alpine:3.18.yaml +++ b/.forgejo/workflows/alpine:3.18.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/alpine:3.19.yaml b/.forgejo/workflows/alpine:3.19.yaml index be34e54..56822d2 100644 --- a/.forgejo/workflows/alpine:3.19.yaml +++ b/.forgejo/workflows/alpine:3.19.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/archlinux:base-20231112.0.191179.yaml b/.forgejo/workflows/archlinux:base-20231112.0.191179.yaml index c672ea1..e7bf484 100644 --- a/.forgejo/workflows/archlinux:base-20231112.0.191179.yaml +++ b/.forgejo/workflows/archlinux:base-20231112.0.191179.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/archlinux:base-20240101.0.204074.yaml b/.forgejo/workflows/archlinux:base-20240101.0.204074.yaml index bac2557..ad820f2 100644 --- a/.forgejo/workflows/archlinux:base-20240101.0.204074.yaml +++ b/.forgejo/workflows/archlinux:base-20240101.0.204074.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/debian:bullseye.yaml b/.forgejo/workflows/debian:bullseye.yaml index 82cf822..d36bf30 100644 --- a/.forgejo/workflows/debian:bullseye.yaml +++ b/.forgejo/workflows/debian:bullseye.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/fedora:39.yaml b/.forgejo/workflows/fedora:39.yaml index 0f0a195..8436465 100644 --- a/.forgejo/workflows/fedora:39.yaml +++ b/.forgejo/workflows/fedora:39.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/fedora:40.yaml b/.forgejo/workflows/fedora:40.yaml index beb2f0d..3ec95f5 100644 --- a/.forgejo/workflows/fedora:40.yaml +++ b/.forgejo/workflows/fedora:40.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/rockylinux:8.yaml b/.forgejo/workflows/rockylinux:8.yaml index 14b52d2..df19a7f 100644 --- a/.forgejo/workflows/rockylinux:8.yaml +++ b/.forgejo/workflows/rockylinux:8.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/rockylinux:9.yaml b/.forgejo/workflows/rockylinux:9.yaml index a29242e..d000dd1 100644 --- a/.forgejo/workflows/rockylinux:9.yaml +++ b/.forgejo/workflows/rockylinux:9.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/ubuntu:jammy.yaml b/.forgejo/workflows/ubuntu:jammy.yaml index ac3ce6d..23b9e42 100644 --- a/.forgejo/workflows/ubuntu:jammy.yaml +++ b/.forgejo/workflows/ubuntu:jammy.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.forgejo/workflows/ubuntu:noble.yaml b/.forgejo/workflows/ubuntu:noble.yaml index e620719..7513578 100644 --- a/.forgejo/workflows/ubuntu:noble.yaml +++ b/.forgejo/workflows/ubuntu:noble.yaml @@ -10,4 +10,5 @@ jobs: run: eval ${{vars.cd}} - run: cd-list-environment + - run: cd-clone-branch - run: cd-browse-workspace diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3de640e..c786575 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,6 @@ image: debian:bookworm job: script: - - pwd && ls -a -l - source ${CD} - cd-list-environment From 9032b80dcf87c07dbab09f8d668b71517a239ba6 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Thu, 30 May 2024 18:24:18 +0200 Subject: [PATCH 2/7] cd-build-project --- .forgejo/workflows/almalinux:8.yaml | 1 + .forgejo/workflows/almalinux:9.yaml | 1 + .forgejo/workflows/alpine:3.18.yaml | 1 + .forgejo/workflows/alpine:3.19.yaml | 1 + .forgejo/workflows/archlinux:base-20231112.0.191179.yaml | 1 + .forgejo/workflows/archlinux:base-20240101.0.204074.yaml | 1 + .forgejo/workflows/debian:bookworm.yaml | 3 +-- .forgejo/workflows/debian:bullseye.yaml | 1 + .forgejo/workflows/fedora:39.yaml | 1 + .forgejo/workflows/fedora:40.yaml | 1 + .forgejo/workflows/rockylinux:8.yaml | 1 + .forgejo/workflows/rockylinux:9.yaml | 1 + .forgejo/workflows/ubuntu:jammy.yaml | 1 + .forgejo/workflows/ubuntu:noble.yaml | 1 + .gitlab-ci.yml | 2 +- 15 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/almalinux:8.yaml b/.forgejo/workflows/almalinux:8.yaml index 830163f..4931810 100644 --- a/.forgejo/workflows/almalinux:8.yaml +++ b/.forgejo/workflows/almalinux:8.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/almalinux:9.yaml b/.forgejo/workflows/almalinux:9.yaml index 9acc6ff..596e81f 100644 --- a/.forgejo/workflows/almalinux:9.yaml +++ b/.forgejo/workflows/almalinux:9.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/alpine:3.18.yaml b/.forgejo/workflows/alpine:3.18.yaml index ee2fe16..9082776 100644 --- a/.forgejo/workflows/alpine:3.18.yaml +++ b/.forgejo/workflows/alpine:3.18.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/alpine:3.19.yaml b/.forgejo/workflows/alpine:3.19.yaml index 56822d2..169119c 100644 --- a/.forgejo/workflows/alpine:3.19.yaml +++ b/.forgejo/workflows/alpine:3.19.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/archlinux:base-20231112.0.191179.yaml b/.forgejo/workflows/archlinux:base-20231112.0.191179.yaml index e7bf484..2fb6805 100644 --- a/.forgejo/workflows/archlinux:base-20231112.0.191179.yaml +++ b/.forgejo/workflows/archlinux:base-20231112.0.191179.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/archlinux:base-20240101.0.204074.yaml b/.forgejo/workflows/archlinux:base-20240101.0.204074.yaml index ad820f2..3442cfd 100644 --- a/.forgejo/workflows/archlinux:base-20240101.0.204074.yaml +++ b/.forgejo/workflows/archlinux:base-20240101.0.204074.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/debian:bookworm.yaml b/.forgejo/workflows/debian:bookworm.yaml index 7ac4390..976d9ae 100644 --- a/.forgejo/workflows/debian:bookworm.yaml +++ b/.forgejo/workflows/debian:bookworm.yaml @@ -4,7 +4,6 @@ jobs: container: image: debian:bookworm steps: - - run: pwd && ls -a -l - name: cd env: CD: ${{secrets.cd}} @@ -12,6 +11,6 @@ jobs: - run: cd-list-environment - run: cd-clone-branch - - run: cd-browse-workspace - run: cd-build-project + - run: cd-browse-workspace - run: cd-synchronize out diff --git a/.forgejo/workflows/debian:bullseye.yaml b/.forgejo/workflows/debian:bullseye.yaml index d36bf30..6a61463 100644 --- a/.forgejo/workflows/debian:bullseye.yaml +++ b/.forgejo/workflows/debian:bullseye.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/fedora:39.yaml b/.forgejo/workflows/fedora:39.yaml index 8436465..7a21790 100644 --- a/.forgejo/workflows/fedora:39.yaml +++ b/.forgejo/workflows/fedora:39.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/fedora:40.yaml b/.forgejo/workflows/fedora:40.yaml index 3ec95f5..04568ed 100644 --- a/.forgejo/workflows/fedora:40.yaml +++ b/.forgejo/workflows/fedora:40.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/rockylinux:8.yaml b/.forgejo/workflows/rockylinux:8.yaml index df19a7f..7c002a9 100644 --- a/.forgejo/workflows/rockylinux:8.yaml +++ b/.forgejo/workflows/rockylinux:8.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/rockylinux:9.yaml b/.forgejo/workflows/rockylinux:9.yaml index d000dd1..66e97ae 100644 --- a/.forgejo/workflows/rockylinux:9.yaml +++ b/.forgejo/workflows/rockylinux:9.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/ubuntu:jammy.yaml b/.forgejo/workflows/ubuntu:jammy.yaml index 23b9e42..c7b6cb4 100644 --- a/.forgejo/workflows/ubuntu:jammy.yaml +++ b/.forgejo/workflows/ubuntu:jammy.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.forgejo/workflows/ubuntu:noble.yaml b/.forgejo/workflows/ubuntu:noble.yaml index 7513578..5f487ad 100644 --- a/.forgejo/workflows/ubuntu:noble.yaml +++ b/.forgejo/workflows/ubuntu:noble.yaml @@ -11,4 +11,5 @@ jobs: - run: cd-list-environment - run: cd-clone-branch + - run: cd-build-project - run: cd-browse-workspace diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c786575..b6461ec 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,6 @@ job: - cd-list-environment - cd-clone-branch - - cd-browse-workspace - cd-build-project + - cd-browse-workspace - cd-synchronize out From b103d6967c6e97eb4ac341b4aea97628f0d52bf5 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Thu, 30 May 2024 18:53:34 +0200 Subject: [PATCH 3/7] =?UTF-8?q?=E2=88=92sync?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b6461ec..8158f14 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,4 +7,3 @@ job: - cd-clone-branch - cd-build-project - cd-browse-workspace - - cd-synchronize out From b3ae76109ef101a856bbd477edb3d2e6c02cc97b Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Thu, 30 May 2024 20:38:32 +0200 Subject: [PATCH 4/7] rsync --- cd.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cd.sh b/cd.sh index f4c9886..25a6488 100644 --- a/cd.sh +++ b/cd.sh @@ -29,6 +29,8 @@ cd_main () { cd_upgrade_packages cd_install_git cd_install_python + # TODO move to Python + cd_install_rsync cd_clean_packages_cache cd_install_python_modules ${CD_PYTHON_MODULES} cd_execute_python_module ${CD_PYTHON_MODULES} @@ -108,6 +110,8 @@ cd_set_environment_variables () { CD_DNS_FILE="/etc/resolv.conf" CD_PKG_CA="ca-certificates" CD_PKG_GIT="git" + # TODO move to Python + CD_PKG_RSYNC="rsync" CD_PYTHON_ALIAS="python3" cd_split cd_echo "CD_DNS_FILE" "CD_PKG_CA" "CD_PKG_GIT" "CD_PYTHON_ALIAS" @@ -502,6 +506,12 @@ cd_install_python () { cd_ln_python "${CD_PYTHON_COMMAND}" } +# TODO move to Python +cd_install_rsync () { + cd_step "Install Rsync" + cd_install_package "${CD_PKG_RSYNC}" +} + cd_clean_packages_cache () { cd_step "Clean packages cache" ${CD_PM_CLEAN} || exit From aaa73f75c85bed9f467ae1a47f8db44f33b76e18 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Thu, 30 May 2024 21:29:06 +0200 Subject: [PATCH 5/7] ssh --- bootstrap.sh | 9 --------- cd.sh | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index e6a0466..2e038fd 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -7,11 +7,6 @@ KEY_ALGORITHM='ed25519' KEY_DIRECTORY='.ssh' KEY_PATH="${KEY_DIRECTORY}/id_${KEY_ALGORITHM}" KEY_PUBLIC='AAAAC3NzaC1lZDI1NTE5AAAAIPHCNcgHlQoiNTXfnUZYvHz9OZwYsmBCrSSV7a7Zche5' -PACKAGES=( -'openssh-client' -'rsync' -'tree' -) SERVER="$(basename ${GITHUB_SERVER_URL})" TARGET='/usr/local/sbin' @@ -36,7 +31,3 @@ chmod '400' "${KEY_PATH}" \ echo "${SERVER} ssh-${KEY_ALGORITHM} ${KEY_PUBLIC}" \ > "${KEY_DIRECTORY}/known_hosts" \ || exit - -# packages -apt-get install --yes "${PACKAGES[@]}" \ -|| exit diff --git a/cd.sh b/cd.sh index 25a6488..9c9639c 100644 --- a/cd.sh +++ b/cd.sh @@ -31,6 +31,8 @@ cd_main () { cd_install_python # TODO move to Python cd_install_rsync + # TODO move to Python + cd_install_ssh cd_clean_packages_cache cd_install_python_modules ${CD_PYTHON_MODULES} cd_execute_python_module ${CD_PYTHON_MODULES} @@ -353,6 +355,13 @@ Dir::Etc::SourceParts \"\"; "CD_PROJECTS_GROUP" "CD_PROJECT_NAME" "CD_PROJECT_BRANCH" cd_split cd_echo "CD_PROJECTS_URL" "CD_PROJECT_URL" + # TODO move to Python + case "${CD_PM}" in + "${CD_PM_APK}"|"${CD_PM_APT}") CD_PKG_SSH="openssh-client" ;; + "${CD_PM_DNF}") CD_PKG_SSH="openssh-clients" ;; + "${CD_PM_PACMAN}") CD_PKG_SSH="openssh" ;; + ;; + esac } cd_set_packages_repositories () { @@ -512,6 +521,12 @@ cd_install_rsync () { cd_install_package "${CD_PKG_RSYNC}" } +# TODO move to Python +cd_install_ssh () { + cd_step "Install SSH" + cd_install_package "${CD_PKG_SSH}" +} + cd_clean_packages_cache () { cd_step "Clean packages cache" ${CD_PM_CLEAN} || exit From 887ef88ba9946e5a54849c0212637289005a3a5b Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Thu, 30 May 2024 21:31:29 +0200 Subject: [PATCH 6/7] =?UTF-8?q?=E2=88=92commands?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bootstrap.sh | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 2e038fd..598653d 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,22 +1,10 @@ #! /usr/bin/env bash -FILE="$(realpath "${BASH_SOURCE[0]}")" -ROOT="$(dirname "${FILE}")" -COMMANDS='cmd' KEY_ALGORITHM='ed25519' KEY_DIRECTORY='.ssh' KEY_PATH="${KEY_DIRECTORY}/id_${KEY_ALGORITHM}" KEY_PUBLIC='AAAAC3NzaC1lZDI1NTE5AAAAIPHCNcgHlQoiNTXfnUZYvHz9OZwYsmBCrSSV7a7Zche5' SERVER="$(basename ${GITHUB_SERVER_URL})" -TARGET='/usr/local/sbin' - -# commands -cd "${ROOT}/${COMMANDS}" \ -|| exit -for file in *.sh ; do - cp "${file}" "${TARGET}/${file%.sh}" \ - || exit -done # ssh cd \ From 70a8fd3e93efa392a9d1753e2355070ec7c2868d Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 31 May 2024 00:29:12 +0200 Subject: [PATCH 7/7] ssh/wip --- bootstrap.sh | 21 --------------------- cd/__init__.py | 25 ++++++++++++++++++++++++- cd/__main__.py | 1 + readme.md | 2 ++ 4 files changed, 27 insertions(+), 22 deletions(-) delete mode 100755 bootstrap.sh diff --git a/bootstrap.sh b/bootstrap.sh deleted file mode 100755 index 598653d..0000000 --- a/bootstrap.sh +++ /dev/null @@ -1,21 +0,0 @@ -#! /usr/bin/env bash - -KEY_ALGORITHM='ed25519' -KEY_DIRECTORY='.ssh' -KEY_PATH="${KEY_DIRECTORY}/id_${KEY_ALGORITHM}" -KEY_PUBLIC='AAAAC3NzaC1lZDI1NTE5AAAAIPHCNcgHlQoiNTXfnUZYvHz9OZwYsmBCrSSV7a7Zche5' -SERVER="$(basename ${GITHUB_SERVER_URL})" - -# ssh -cd \ -|| exit -mkdir "${KEY_DIRECTORY}" \ -|| exit -echo "${CD}" > "${KEY_PATH}" \ -|| exit -unset CD -chmod '400' "${KEY_PATH}" \ -|| exit -echo "${SERVER} ssh-${KEY_ALGORITHM} ${KEY_PUBLIC}" \ -> "${KEY_DIRECTORY}/known_hosts" \ -|| exit diff --git a/cd/__init__.py b/cd/__init__.py index 8f2bf6e..ac39077 100644 --- a/cd/__init__.py +++ b/cd/__init__.py @@ -2,6 +2,7 @@ import os from cd.project import Project from cd.projects import Projects +from rwx import fs from rwx import ps COMMANDS_PREFIX = 'cd-' @@ -50,7 +51,7 @@ def cd_clone_branch(): def cd_list_environment(): - for variable, value in sorted(os.environ.items()): + for variable, value in sorted(projects.environment.items()): print(variable, '=', value) @@ -64,3 +65,25 @@ def install_commands(path): ]: print(command) os.symlink(path, os.path.join(user, f'{COMMANDS_PREFIX}{command}')) + + +def set_ssh(): + ssh_hosts = projects.environment.get('CD_SSH_HOSTS', None) + ssh_key = projects.environment.get('CD', None) + ssh_type = projects.environment.get('CD_SSH_TYPE', 'ed25519') + # + home = os.path.expanduser('~') + # + ssh = os.path.join(home, '.ssh') + os.makedirs(ssh, exist_ok=True) + os.chmod(ssh, 0o700) + # + key = os.path.join(ssh, f'id_{ssh_type}') + if ssh_key: + fs.write(key, ssh_key) + os.chmod(key, 0o400) + # + known = os.path.join(ssh, 'known_hosts') + if ssh_hosts: + fs.write(known, ssh_hosts) + os.chmod(known, 0o400) diff --git a/cd/__main__.py b/cd/__main__.py index c93b684..ba1ca17 100755 --- a/cd/__main__.py +++ b/cd/__main__.py @@ -10,6 +10,7 @@ if __name__ == '__main__': command, *arguments = sys.argv command = os.path.basename(command) if command == '__main__.py': + cd.set_ssh() cd.install_commands(__file__) else: command = command.replace('-', '_') diff --git a/readme.md b/readme.md index 556a91f..2492ead 100644 --- a/readme.md +++ b/readme.md @@ -41,6 +41,8 @@ from various CA, CI, OCI / OS. |:--------------|:------------------------| | CD_CA_n | Numbered CA certificate | | CD_DNS | Space separated servers | +| CD_SSH_HOSTS | domain.tld ssh-type pub | +| CD_SSH_TYPE | SSH private key type | | CD_URL_ALMA | Alma repository URL | | CD_URL_ALPINE | Alpine repository URL | | CD_URL_ARCH | Arch repository URL |