From 4fe3beabbc1718fd8ecc72e85439ab92b8be61d3 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 18 Dec 2017 14:12:58 -0500 Subject: f --- Makefile | 2 +- bin/hackers-git-init | 28 ++++++++++++++++++++++++++++ bin/hackers-git-update | 29 +++++++++++++++++++++++++++++ bin/hooks/00-git-pull | 7 +++++++ bin/hooks/01-nshd | 5 +++++ bin/hooks/02-autobuilder | 5 +++++ bin/hooks/03-postfix | 5 +++++ hackers-init.service.in | 8 ++++++++ nshd.service.in | 1 + 9 files changed, 89 insertions(+), 1 deletion(-) create mode 100755 bin/hackers-git-init create mode 100755 bin/hackers-git-update create mode 100644 bin/hooks/00-git-pull create mode 100644 bin/hooks/01-nshd create mode 100644 bin/hooks/02-autobuilder create mode 100644 bin/hooks/03-postfix create mode 100644 hackers-init.service.in diff --git a/Makefile b/Makefile index 873d745..00cdd73 100644 --- a/Makefile +++ b/Makefile @@ -63,7 +63,7 @@ nested.subdirs += $(dir $(filter %/Makefile,$(_gitfiles.all))) # # Build (post-tarball) -files.out.all += $(addprefix bin/,$(filter-out $(bins_script),$(bins))) nshd.service nshd.sysusers +files.out.all += $(addprefix bin/,$(filter-out $(bins_script),$(bins))) nshd.service hackers-init.service nshd.sysusers files.out.int += go/pkg/ go/bin/ go/bin/* # Go diff --git a/bin/hackers-git-init b/bin/hackers-git-init new file mode 100755 index 0000000..5e26e7b --- /dev/null +++ b/bin/hackers-git-init @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# Copyright 2017 Luke Shumaker . +# +# This is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This software is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this manual; if not, see +# . + +{ + set -e + shopt -s nullglob + mydir="$(dirname "$0")" + gitdir="$(ruby -e "load '$mydir/common.rb'; print File.dirname cfg['yamldir']")" + if [[ -e "$gitdir/.git" ]] && stat -- "$gitdir"/users/*.yml 2>/dev/null; then + exit 0 + fi + install --directory --owner=git --group=git "$gitdir" + sudo -u git git clone git://git.parabola.nu/hackers.git "$gitdir" +} diff --git a/bin/hackers-git-update b/bin/hackers-git-update new file mode 100755 index 0000000..d9d9fc6 --- /dev/null +++ b/bin/hackers-git-update @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# Copyright 2014, 2016-2017 Luke Shumaker . +# +# This is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This software is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this manual; if not, see +# . + +{ + set -e + mydir="$(dirname "$0")" + gitdir="$(ruby -e "load '$mydir/common.rb'; print File.dirname cfg['yamldir']")" + echo '==> Updating system checkout...' + ( + unset GIT_DIR + cd "$gitdir" + git pull + ) + run-parts --arg="$gitdir" -- /etc/parabola-hackers/hooks +} diff --git a/bin/hooks/00-git-pull b/bin/hooks/00-git-pull new file mode 100644 index 0000000..e432f51 --- /dev/null +++ b/bin/hooks/00-git-pull @@ -0,0 +1,7 @@ +#!/bin/bash + +# Update the system checkout of hackers.git +echo '==> Updating system checkout...' +unset GIT_DIR +cd /var/lib/hackers-git +git pull diff --git a/bin/hooks/01-nshd b/bin/hooks/01-nshd new file mode 100644 index 0000000..b3e71e0 --- /dev/null +++ b/bin/hooks/01-nshd @@ -0,0 +1,5 @@ +#!/bin/bash + +# tell nshd +echo '==> Reloading nshd...' +sudo systemctl reload nshd.service diff --git a/bin/hooks/02-autobuilder b/bin/hooks/02-autobuilder new file mode 100644 index 0000000..905aeac --- /dev/null +++ b/bin/hooks/02-autobuilder @@ -0,0 +1,5 @@ +#!/bin/bash + +# tell autobuilder +echo '==> Updating libre/parabola-kerying ...' +~autobuilder/.local/bin/autobuild libre/parabola-keyring users \ No newline at end of file diff --git a/bin/hooks/03-postfix b/bin/hooks/03-postfix new file mode 100644 index 0000000..2c12c4e --- /dev/null +++ b/bin/hooks/03-postfix @@ -0,0 +1,5 @@ +#!/bin/bash + +/lib/parabola-hackers/postfix-generate-virtual-map > /etc/postfix/virtual-hackers +postmap hash:/etc/postfix/virtual-hackers +systemctl reload postfix.service diff --git a/hackers-init.service.in b/hackers-init.service.in new file mode 100644 index 0000000..a216414 --- /dev/null +++ b/hackers-init.service.in @@ -0,0 +1,8 @@ +[Unit] +Description=Initialize hackers.git +Wants=network-online.target + +[Service] +ExecStart=@bindir@/hackers-git-init +Type=oneshot +RemainAfterExit=yes diff --git a/nshd.service.in b/nshd.service.in index 6aa3d2f..4b9784c 100644 --- a/nshd.service.in +++ b/nshd.service.in @@ -1,6 +1,7 @@ [Unit] Description=Name Service hackers.git Daemon Requires=nshd.socket +Wants=hackers-init.service Wants=nss-user-lookup.target Before=nss-user-lookup.target -- cgit v1.2.2