diff options
| author | onelin <oscar@nelin.dk> | 2026-04-02 17:39:35 +0000 |
|---|---|---|
| committer | onelin <oscar@nelin.dk> | 2026-04-02 17:42:50 +0000 |
| commit | f458a536ac8d732e47a8dce4d92aa2f1b5a2c649 (patch) | |
| tree | 7f1c538d01d55ab5bddb543eb28364dc3d790914 /gitolite | |
| parent | 2489faf7ac22f45ab92545db1216ce8cfa4fae98 (diff) | |
Add compiled cgit 1.3
Also includes:
* Everforest theme
* Automatic last-modified hooks
* Update to icon and logo
Diffstat (limited to 'gitolite')
| -rw-r--r-- | gitolite/Dockerfile | 6 | ||||
| -rw-r--r-- | gitolite/docker-entrypoint.sh | 6 | ||||
| -rw-r--r-- | gitolite/post-receive | 9 |
3 files changed, 20 insertions, 1 deletions
diff --git a/gitolite/Dockerfile b/gitolite/Dockerfile index f6749f7..8ac87f6 100644 --- a/gitolite/Dockerfile +++ b/gitolite/Dockerfile @@ -17,6 +17,11 @@ VOLUME /etc/ssh/keys # Volume used to store all Gitolite data (keys, config and repositories), initialized on first run VOLUME /var/lib/git +# Permissions are fixed in docker-entrypoint.sh +RUN mkdir -p /var/lib/git/local/hooks/common +COPY post-receive /var/lib/git/local/hooks/common/ +RUN chmod +x /var/lib/git/local/hooks/common/post-receive + # Entrypoint responsible for SSH host keys generation, and Gitolite data initialization COPY docker-entrypoint.sh / RUN chmod +x /docker-entrypoint.sh @@ -26,5 +31,4 @@ ENTRYPOINT ["/docker-entrypoint.sh"] EXPOSE 22 # Default command is to run the SSH server - CMD ["sshd"] diff --git a/gitolite/docker-entrypoint.sh b/gitolite/docker-entrypoint.sh index 94717eb..3d08d34 100644 --- a/gitolite/docker-entrypoint.sh +++ b/gitolite/docker-entrypoint.sh @@ -29,6 +29,7 @@ if [ ! -f ~git/.ssh/authorized_keys ]; then [ -n "$SSH_KEY_NAME" ] || SSH_KEY_NAME=admin echo "$SSH_KEY" > "/tmp/$SSH_KEY_NAME.pub" su - git -c "gitolite setup -pk \"/tmp/$SSH_KEY_NAME.pub\"" + su - git -c "sed -i -Ee 's/# (LOCAL_CODE\\s+=>\\s+\"\\\$ENV\\{HOME\\}\\/local\",.*)/\\1/' ~/.gitolite.rc" rm "/tmp/$SSH_KEY_NAME.pub" else echo "You need to specify SSH_KEY on first run to setup gitolite" @@ -41,4 +42,9 @@ else su - git -c "gitolite setup" fi +if [ "${1}" != 'sshd' ]; then + sed -i -Ee "s/^([^#]*GIT_CONFIG_KEYS\\s*=>\\s*)'[^']*'\\s*,/\\1'cgit.*',/" /var/lib/git/.gitolite.rc + #sed -i -Ee "s/^([^#]*GIT_CONFIG_KEYS\\s*=>\\s*)'[^']*'\\s*,/\\1'.*',/" /var/lib/git/.gitolite.rc +fi + exec "$@" diff --git a/gitolite/post-receive b/gitolite/post-receive new file mode 100644 index 0000000..3a3e262 --- /dev/null +++ b/gitolite/post-receive @@ -0,0 +1,9 @@ +#!/bin/sh + +agefile="$(git rev-parse --git-dir)"/info/web/last-modified + +mkdir -p "$(dirname "$agefile")" && +git for-each-ref \ + --sort=-authordate --count=1 \ + --format='%(authordate:iso8601)' \ + >"$agefile" |
