1
0

entrypoint.sh 915 B

123456789101112131415161718192021222324252627282930
  1. #!/bin/sh
  2. set -eu
  3. if [ ! -f "$SSHD_HOST_KEYS_DIR/rsa" ]; then
  4. ssh-keygen -t rsa -b 4096 -N '' -f "$SSHD_HOST_KEYS_DIR/rsa"
  5. fi
  6. if [ ! -f "$SSHD_HOST_KEYS_DIR/ed25519" ]; then
  7. ssh-keygen -t ed25519 -N '' -f "$SSHD_HOST_KEYS_DIR/ed25519"
  8. fi
  9. if [ ! -d "$HOME/.gitolite" ]; then
  10. # > First run: either the pubkey or the admin name is *required*, [...]
  11. (set -x; gitolite setup --admin "$GITOLITE_INITIAL_ADMIN_NAME")
  12. fi
  13. unset GITOLITE_INITIAL_ADMIN_NAME
  14. printenv | cut -d = -f 1 | while IFS= read -r var_name; do
  15. if [ "$(echo "$var_name" | cut -d _ -f -4)" = "GITOLITE_USER_PUBLIC_KEY" ]; then
  16. user="$(echo "$var_name" | cut -d _ -f 5-)"
  17. key_path="$HOME/container-entrypoint-user-public-keys/${user}.pub"
  18. mkdir --parents "$(dirname "$key_path")"
  19. printenv "$var_name" > "$key_path"
  20. (set -x; gitolite setup --pubkey "$key_path")
  21. fi
  22. done
  23. set -x
  24. exec "$@"