123456789101112131415161718192021222324252627282930 |
- #!/bin/sh
- set -eu
- if [ ! -f "$SSHD_HOST_KEYS_DIR/rsa" ]; then
- ssh-keygen -t rsa -b 4096 -N '' -f "$SSHD_HOST_KEYS_DIR/rsa"
- fi
- if [ ! -f "$SSHD_HOST_KEYS_DIR/ed25519" ]; then
- ssh-keygen -t ed25519 -N '' -f "$SSHD_HOST_KEYS_DIR/ed25519"
- fi
- if [ ! -d "$HOME/.gitolite" ]; then
- # > First run: either the pubkey or the admin name is *required*, [...]
- (set -x; gitolite setup --admin "$GITOLITE_INITIAL_ADMIN_NAME")
- fi
- unset GITOLITE_INITIAL_ADMIN_NAME
- printenv | cut -d = -f 1 | while IFS= read -r var_name; do
- if [ "$(echo "$var_name" | cut -d _ -f -4)" = "GITOLITE_USER_PUBLIC_KEY" ]; then
- user="$(echo "$var_name" | cut -d _ -f 5-)"
- key_path="$HOME/container-entrypoint-user-public-keys/${user}.pub"
- mkdir --parents "$(dirname "$key_path")"
- printenv "$var_name" > "$key_path"
- (set -x; gitolite setup --pubkey "$key_path")
- fi
- done
- set -x
- exec "$@"
|