summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2017-12-18 14:12:58 -0500
committerLuke Shumaker <lukeshu@lukeshu.com>2017-12-18 14:12:58 -0500
commit4fe3beabbc1718fd8ecc72e85439ab92b8be61d3 (patch)
tree7da621a5ec5bba052bb7010a5afcadb98ac670ee
parentdb07948255b26e83d4ca4c82965f807f83c03898 (diff)
-rw-r--r--Makefile2
-rwxr-xr-xbin/hackers-git-init28
-rwxr-xr-xbin/hackers-git-update29
-rw-r--r--bin/hooks/00-git-pull7
-rw-r--r--bin/hooks/01-nshd5
-rw-r--r--bin/hooks/02-autobuilder5
-rw-r--r--bin/hooks/03-postfix5
-rw-r--r--hackers-init.service.in8
-rw-r--r--nshd.service.in1
9 files changed, 89 insertions, 1 deletions
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 <lukeshu@sbcglobal.net>.
+#
+# 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
+# <http://www.gnu.org/licenses/>.
+
+{
+ 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 <lukeshu@sbcglobal.net>.
+#
+# 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
+# <http://www.gnu.org/licenses/>.
+
+{
+ 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