entrypoint.sh 908 B

1234567891011121314151617181920212223242526272829
  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. (set -x; printenv "$var_name" > "$key_path"; gitolite setup --pubkey "$key_path")
  20. fi
  21. done
  22. set -x
  23. exec "$@"