net-p2p/syncthing: add init script, man, logrotate
authorLouis Sautier <sautier.louis@gmail.com>
Wed, 17 Feb 2016 14:01:29 +0000 (15:01 +0100)
committerDirkjan Ochtman <djc@gentoo.org>
Wed, 17 Feb 2016 20:33:20 +0000 (21:33 +0100)
Package-Manager: portage-2.2.27

net-p2p/syncthing/files/syncthing.confd [new file with mode: 0644]
net-p2p/syncthing/files/syncthing.initd [new file with mode: 0755]
net-p2p/syncthing/files/syncthing.logrotate [new file with mode: 0644]
net-p2p/syncthing/syncthing-0.12.19.ebuild

diff --git a/net-p2p/syncthing/files/syncthing.confd b/net-p2p/syncthing/files/syncthing.confd
new file mode 100644 (file)
index 0000000..da3ac4d
--- /dev/null
@@ -0,0 +1,24 @@
+# /etc/conf.d/syncthing: config file for /etc/init.d/syncthing
+
+# User and group as which to run
+#SYNCTHING_USER="syncthing"
+#SYNCTHING_GROUP="syncthing"
+
+# Configuration directory
+#SYNCTHING_HOMEDIR="/var/lib/syncthing"
+
+# Log file location
+#SYNCTHING_LOGFILE="/var/log/syncthing/syncthing.log"
+
+# umask used to create files
+# The default allows group access
+#SYNCTHING_UMASK=007
+
+# I/O nice level of syncthing
+#SYNCTHING_IONICE="0"
+
+# Nice level of syncthing
+#SYNCTHING_NICE="0"
+
+# Extra options for syncthing
+#SYNCTHING_OPTS=""
diff --git a/net-p2p/syncthing/files/syncthing.initd b/net-p2p/syncthing/files/syncthing.initd
new file mode 100755 (executable)
index 0000000..2acaf34
--- /dev/null
@@ -0,0 +1,34 @@
+#!/sbin/runscript
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+SYNCTHING_USER=${SYNCTHING_USER:-syncthing}
+SYNCTHING_GROUP=${SYNCTHING_GROUP:-syncthing}
+SYNCTHING_HOMEDIR=${SYNCTHING_HOMEDIR:-/var/lib/syncthing}
+SYNCTHING_LOGFILE=${SYNCTHING_LOGFILE:-/var/log/syncthing/syncthing.log}
+SYNCTHING_UMASK=${SYNCTHING_UMASK:-007}
+SYNCTHING_IONICE=${SYNCTHING_IONICE:-0}
+SYNCTHING_NICE=${SYNCTHING_NICE:-0}
+
+description="Syncthing is an open, trustworthy and decentralized cloud storage system"
+command="/usr/bin/syncthing"
+command_args="-no-browser -home=${SYNCTHING_HOMEDIR} ${SYNCTHING_OPTS}"
+pidfile="/run/syncthing.pid"
+start_stop_daemon_args="--background \
+  --user ${SYNCTHING_USER} \
+  --group ${SYNCTHING_GROUP} \
+  --umask ${SYNCTHING_UMASK} \
+  --make-pidfile \
+  --ionice ${SYNCTHING_IONICE} \
+  --nicelevel ${SYNCTHING_NICE} \
+  --stdout ${SYNCTHING_LOGFILE} \
+  --stderr ${SYNCTHING_LOGFILE}"
+
+depend() {
+  need localmount net
+}
+
+start_pre() {
+  checkpath -q -d -o ${SYNCTHING_USER}:${SYNCTHING_GROUP} ${SYNCTHING_HOMEDIR}
+  checkpath -q -f -o ${SYNCTHING_USER}:${SYNCTHING_GROUP} ${SYNCTHING_LOGFILE}
+}
diff --git a/net-p2p/syncthing/files/syncthing.logrotate b/net-p2p/syncthing/files/syncthing.logrotate
new file mode 100644 (file)
index 0000000..37c4320
--- /dev/null
@@ -0,0 +1,9 @@
+/var/log/syncthing/syncthing.log {
+    missingok
+    notifempty
+    sharedscripts
+    postrotate
+        kill -0 $(</run/syncthing.pid) && \
+          /etc/init.d/syncthing restart > /dev/null 2>&1 || true
+    endscript
+}
index 07664310d1dcce747f485bee169389ce8780ba13..5f22a11ad30c089ec5db54deb4e87b7eb0bb57d5 100644 (file)
@@ -7,7 +7,7 @@ EAPI=5
 EGO_PN="github.com/syncthing/syncthing"
 EGIT_COMMIT=v${PV}
 
-inherit golang-vcs-snapshot systemd
+inherit golang-vcs-snapshot systemd user
 
 DESCRIPTION="Syncthing is an open, trustworthy and decentralized cloud storage system"
 HOMEPAGE="http://syncthing.net"
@@ -21,6 +21,11 @@ IUSE=""
 DEPEND=""
 RDEPEND=""
 
+pkg_setup() {
+       enewgroup ${PN}
+       enewuser ${PN} -1 -1 /var/lib/${PN} ${PN}
+}
+
 src_compile() {
        export GOPATH="${S}:$(get_golibdir_gopath)"
        cd src/${EGO_PN}
@@ -34,8 +39,15 @@ src_test() {
 
 src_install() {
        cd src/${EGO_PN}
+       doman man/*.[157] || die
        dobin bin/*
-       dodoc README.md AUTHORS  CONTRIBUTING.md
+       dodoc README.md AUTHORS CONTRIBUTING.md
        systemd_dounit "${S}"/src/${EGO_PN}/etc/linux-systemd/system/${PN}@.service
        systemd_douserunit "${S}"/src/${EGO_PN}/etc/linux-systemd/user/${PN}.service
+       newconfd "${FILESDIR}/${PN}.confd" ${PN}
+       newinitd "${FILESDIR}/${PN}.initd" ${PN}
+       keepdir /var/{lib,log}/${PN}
+       fowners ${PN}:${PN} /var/{lib,log}/${PN}
+       insinto /etc/logrotate.d
+       newins "${FILESDIR}/${PN}.logrotate" ${PN}
 }