summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-dns/namecoind/files/namecoin.initd')
-rw-r--r--net-dns/namecoind/files/namecoin.initd104
1 files changed, 104 insertions, 0 deletions
diff --git a/net-dns/namecoind/files/namecoin.initd b/net-dns/namecoind/files/namecoin.initd
new file mode 100644
index 000000000000..4330c918e44b
--- /dev/null
+++ b/net-dns/namecoind/files/namecoin.initd
@@ -0,0 +1,104 @@
+#!/sbin/runscript
+# Distributed under the terms of the GNU General Public License, v2 or later
+
+VARDIR="/var/lib/namecoin"
+CONFFILE="${VARDIR}/.namecoin/bitcoin.conf"
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [[ "${NAMECOIN_USER}" == "" ]] ; then
+ eerror "Please edit /etc/conf.d/namecoind"
+ eerror "A user must be specified to run namecoind as that user."
+ eerror "Modify USER to your needs (you may also add a group after a colon)"
+ return 1
+ fi
+ if ! `getent passwd | cut -d ':' -f 1 | grep $( echo "${NAMECOIN_USER}" | cut -d ':' -f 1 ) -sq` ; then
+ eerror "Please edit /etc/conf.d/namecoind"
+ eerror "Specified user must exist!"
+ return 1
+ fi
+ if `echo "${NAMECOIN_USER}" | grep ':' -sq` ; then
+ if ! `cut -d ':' -f 1 /etc/group | grep $( echo "${NAMECOIN_USER}" | cut -d ':' -f 2 ) -sq` ; then
+ eerror "Please edit /etc/conf.d/namecoind"
+ eerror "Specified group must exist!"
+ return 1
+ fi
+ fi
+ if ! grep -q '^rpcpassword=' "${CONFFILE}"; then
+ eerror "Please edit `readlink -f ${CONFFILE}`"
+ eerror "There must be at least a line assigning rpcpassword=something-secure"
+ return 1
+ fi
+ if ! stat -Lc '%a' "${CONFFILE}" | grep -q '^[4567]00$'; then
+ eerror "`readlink -f ${CONFFILE}` should not be readable by other users"
+ return 1
+ fi
+ return 0
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting Namecoind daemon"
+
+ pkg-config openrc
+ if [ $? = 0 ]; then
+ start_openrc
+ else
+ start_baselayout
+ fi
+}
+
+stop() {
+ ebegin "Stopping Namecoin daemon"
+
+ pkg-config openrc
+ if [ $? = 0 ]; then
+ stop_openrc
+ else
+ stop_baselayout
+ fi
+}
+
+start_openrc() {
+ start-stop-daemon \
+ --start --user "${NAMECOIN_USER}" --name namecoind \
+ --pidfile /var/run/namecoind.pid --make-pidfile \
+ --env HOME="${VARDIR}" --exec /usr/bin/namecoind \
+ --nicelevel "${NICELEVEL}" \
+ --background \
+ --wait 2000 \
+ -- ${NAMECOIN_OPTS}
+ eend $?
+}
+
+stop_openrc() {
+ start-stop-daemon --stop --user "${NAMECOIN_USER}" \
+ --name namecoind --pidfile /var/run/namecoind.pid \
+ --wait 30000 \
+ --progress
+ eend $?
+}
+
+start_baselayout() {
+ start-stop-daemon \
+ --start --user "${NAMECOIN_USER}" --name namecoind \
+ --pidfile /var/run/namecoind.pid --make-pidfile \
+ --env HOME="${VARDIR}" --exec /usr/bin/namecoind \
+ --chuid "${NAMECOIN_USER}" \
+ --nicelevel "${NICELEVEL}" \
+ --background \
+ -- ${NAMECOIN_OPTS}
+ eend $?
+}
+
+stop_baselayout() {
+ start-stop-daemon \
+ --stop \
+ --user "${NAMECOIN_USER}" \
+ --name namecoind \
+ --pidfile /var/run/namecoind.pid
+ eend $?
+}