Compare commits

..

No commits in common. "70a8fd3e93efa392a9d1753e2355070ec7c2868d" and "5a2cf6253bbf62c35f4e7a41f54b2d5f45bf100d" have entirely different histories.

20 changed files with 48 additions and 80 deletions

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -4,6 +4,7 @@ jobs:
container: container:
image: debian:bookworm image: debian:bookworm
steps: steps:
- run: pwd && ls -a -l
- name: cd - name: cd
env: env:
CD: ${{secrets.cd}} CD: ${{secrets.cd}}
@ -11,6 +12,6 @@ jobs:
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch - run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace
- run: cd-build-project
- run: cd-synchronize out - run: cd-synchronize out

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -10,6 +10,4 @@ jobs:
run: eval ${{vars.cd}} run: eval ${{vars.cd}}
- run: cd-list-environment - run: cd-list-environment
- run: cd-clone-branch
- run: cd-build-project
- run: cd-browse-workspace - run: cd-browse-workspace

View file

@ -1,9 +1,11 @@
image: debian:bookworm image: debian:bookworm
job: job:
script: script:
- pwd && ls -a -l
- source ${CD} - source ${CD}
- cd-list-environment - cd-list-environment
- cd-clone-branch - cd-clone-branch
- cd-build-project
- cd-browse-workspace - cd-browse-workspace
- cd-build-project
- cd-synchronize out

42
bootstrap.sh Executable file
View file

@ -0,0 +1,42 @@
#! /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'
PACKAGES=(
'openssh-client'
'rsync'
'tree'
)
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 \
|| 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
# packages
apt-get install --yes "${PACKAGES[@]}" \
|| exit

25
cd.sh
View file

@ -29,10 +29,6 @@ cd_main () {
cd_upgrade_packages cd_upgrade_packages
cd_install_git cd_install_git
cd_install_python cd_install_python
# TODO move to Python
cd_install_rsync
# TODO move to Python
cd_install_ssh
cd_clean_packages_cache cd_clean_packages_cache
cd_install_python_modules ${CD_PYTHON_MODULES} cd_install_python_modules ${CD_PYTHON_MODULES}
cd_execute_python_module ${CD_PYTHON_MODULES} cd_execute_python_module ${CD_PYTHON_MODULES}
@ -112,8 +108,6 @@ cd_set_environment_variables () {
CD_DNS_FILE="/etc/resolv.conf" CD_DNS_FILE="/etc/resolv.conf"
CD_PKG_CA="ca-certificates" CD_PKG_CA="ca-certificates"
CD_PKG_GIT="git" CD_PKG_GIT="git"
# TODO move to Python
CD_PKG_RSYNC="rsync"
CD_PYTHON_ALIAS="python3" CD_PYTHON_ALIAS="python3"
cd_split cd_split
cd_echo "CD_DNS_FILE" "CD_PKG_CA" "CD_PKG_GIT" "CD_PYTHON_ALIAS" cd_echo "CD_DNS_FILE" "CD_PKG_CA" "CD_PKG_GIT" "CD_PYTHON_ALIAS"
@ -355,13 +349,6 @@ Dir::Etc::SourceParts \"\";
"CD_PROJECTS_GROUP" "CD_PROJECT_NAME" "CD_PROJECT_BRANCH" "CD_PROJECTS_GROUP" "CD_PROJECT_NAME" "CD_PROJECT_BRANCH"
cd_split cd_split
cd_echo "CD_PROJECTS_URL" "CD_PROJECT_URL" 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 () { cd_set_packages_repositories () {
@ -515,18 +502,6 @@ cd_install_python () {
cd_ln_python "${CD_PYTHON_COMMAND}" cd_ln_python "${CD_PYTHON_COMMAND}"
} }
# TODO move to Python
cd_install_rsync () {
cd_step "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_clean_packages_cache () {
cd_step "Clean packages cache" cd_step "Clean packages cache"
${CD_PM_CLEAN} || exit ${CD_PM_CLEAN} || exit

View file

@ -2,7 +2,6 @@ import os
from cd.project import Project from cd.project import Project
from cd.projects import Projects from cd.projects import Projects
from rwx import fs
from rwx import ps from rwx import ps
COMMANDS_PREFIX = 'cd-' COMMANDS_PREFIX = 'cd-'
@ -51,7 +50,7 @@ def cd_clone_branch():
def cd_list_environment(): def cd_list_environment():
for variable, value in sorted(projects.environment.items()): for variable, value in sorted(os.environ.items()):
print(variable, '=', value) print(variable, '=', value)
@ -65,25 +64,3 @@ def install_commands(path):
]: ]:
print(command) print(command)
os.symlink(path, os.path.join(user, f'{COMMANDS_PREFIX}{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)

View file

@ -10,7 +10,6 @@ if __name__ == '__main__':
command, *arguments = sys.argv command, *arguments = sys.argv
command = os.path.basename(command) command = os.path.basename(command)
if command == '__main__.py': if command == '__main__.py':
cd.set_ssh()
cd.install_commands(__file__) cd.install_commands(__file__)
else: else:
command = command.replace('-', '_') command = command.replace('-', '_')

View file

@ -41,8 +41,6 @@ from various CA, CI, OCI / OS.
|:--------------|:------------------------| |:--------------|:------------------------|
| CD_CA_n | Numbered CA certificate | | CD_CA_n | Numbered CA certificate |
| CD_DNS | Space separated servers | | 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_ALMA | Alma repository URL |
| CD_URL_ALPINE | Alpine repository URL | | CD_URL_ALPINE | Alpine repository URL |
| CD_URL_ARCH | Arch repository URL | | CD_URL_ARCH | Arch repository URL |