diff --git a/contrib/start-server.sh b/contrib/start-server.sh index c44ce7eccf2941c548b0f3f342e07959fbd43021..578a745bc8cd154ac0152d50e58a84ec710f2191 100755 --- a/contrib/start-server.sh +++ b/contrib/start-server.sh @@ -1,13 +1,15 @@ #!/bin/sh +deps_file=/var/lib/gitlab-deps/deps.json + if [ -z "$GITLAB_URL" ]; then echo "Gitlab-deps is not configured (GITLAB_URL empty)" >&2 exit 0 fi -if [ ! -e /var/lib/gitlab-deps/deps.json ]; then +if [ ! -e $deps_file ]; then echo "No deps.json file, executing update..." >&2 - /usr/sbin/update-gitlab-deps + /usr/sbin/update-gitlab-deps --no-reload if [ $? -gt 0 ]; then echo "update-gitlab-deps failed" >&2 exit 1 @@ -16,4 +18,6 @@ fi exec /usr/bin/gitlab-deps server \ --token-file=$GITLAB_TOKEN_FILE --url=$GITLAB_URL \ - < /var/lib/gitlab-deps/deps.json + --addr=${ADDR:-0.0.0.0} --port=${PORT:-3535} \ + --webhook-auth-token=$WEBHOOK_AUTH_TOKEN \ + < $deps_file diff --git a/contrib/update.sh b/contrib/update.sh index a6abffdcdb7779b5ba56dde3e3b7562b829677cf..10ff6fadcc6d61fbb4d46689d71b2ad82adc43ae 100755 --- a/contrib/update.sh +++ b/contrib/update.sh @@ -1,5 +1,13 @@ #!/bin/sh +deps_file=/var/lib/gitlab-deps/deps.json +reload=1 +ret=0 + +if [ "x$1" = "x--no-reload" ]; then + reload=0 +fi + [ -e /etc/default/gitlab-deps ] && . /etc/default/gitlab-deps if [ -z "$GITLAB_URL" -o -z "$GITLAB_TOKEN_FILE" ]; then @@ -9,7 +17,20 @@ fi opts="--token-file=$GITLAB_TOKEN_FILE --url=$GITLAB_URL" +tmp_file="${deps_file}.tmp.$$" +trap "rm -f $tmp_file 2>/dev/null" EXIT + gitlab-deps list-projects $opts \ | egrep "${PROJECT_REGEXP:-.*}" \ | gitlab-deps deps $opts \ - > $deps_file + > $tmp_file + +if ! cmp $tmp_file $deps_file; then + mv -f $tmp_file $deps_file + if [ $reload -eq 1 ]; then + systemctl reload-or-restart gitlab-deps + ret=$? + fi +fi + +exit $ret diff --git a/debian/accountserver.service b/debian/accountserver.service deleted file mode 100644 index af68e335c7961ec057034eb75ff2ef93551c02dc..0000000000000000000000000000000000000000 --- a/debian/accountserver.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=A/I account server -After=slapd.service - -[Service] -EnvironmentFile=-/etc/default/accountserver -ExecStart=/usr/bin/accountserver $DAEMON_OPTS -Restart=always - -[Install] -WantedBy=multi-user.target diff --git a/debian/gitlab-deps-update.service b/debian/gitlab-deps-update.service new file mode 100644 index 0000000000000000000000000000000000000000..d2eb52185388c5bcae969c68fc8a77b109687e1e --- /dev/null +++ b/debian/gitlab-deps-update.service @@ -0,0 +1,9 @@ +[Unit] +Description=Update gitlab-deps dependency map +After=gitlab-deps.service + +[Service] +Type=oneshot +ExecStart=/usr/sbin/update-gitlab-deps +User=gitlab-deps +Group=gitlab-deps diff --git a/debian/gitlab-deps-update.timer b/debian/gitlab-deps-update.timer new file mode 100644 index 0000000000000000000000000000000000000000..3800bb1ce73f774b47f6fcb5642d05e031b92e48 --- /dev/null +++ b/debian/gitlab-deps-update.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Timer for update-gitlab-deps + +[Timer] +OnCalendar="18 2 * * *" +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/debian/gitlab-deps.default b/debian/gitlab-deps.default index 3b34dd17562640dfa37f01b1f4bf73c9b1d75da4..8c294d2fa8bb50f597db2dc2b7687a83d5945bb8 100644 --- a/debian/gitlab-deps.default +++ b/debian/gitlab-deps.default @@ -7,3 +7,10 @@ GITLAB_TOKEN_FILE=/var/lib/gitlab-deps/auth_token # Set to a regular expression (extended) if you want to filter the # project list. #PROJECT_REGEXP= + +# Set to the X-Gitlab-Token to be used for request authentication. +#WEBHOOK_AUTH_TOKEN= + +# Address and port to bind to. +ADDR=0.0.0.0 +PORT=3535 diff --git a/debian/rules b/debian/rules index 2e20730aa6cf2a6abe0e2aebfc56bd32124694ea..25922511aeafd07b04d178b87ebdb2f7cb996aba 100755 --- a/debian/rules +++ b/debian/rules @@ -1,6 +1,11 @@ #!/usr/bin/make -f # -*- makefile -*- +SYSTEMD_UNITS = \ + gitlab-deps.service \ + gitlab-deps-update.timer \ + gitlab-deps-update.service + export PYBUILD_NAME=gitlab-deps %: @@ -13,3 +18,6 @@ override_dh_auto_install: $(CURDIR)/debian/gitlab-deps/usr/sbin/gitlab-deps-server-wrapper install -o root -g root -m 755 $(CURDIR)/contrib/update.sh \ $(CURDIR)/debian/gitlab-deps/usr/sbin/update-gitlab-deps + +override_dh_install_systemd: + dh_install_systemd $(SYSTEMD_UNITS)