summaryrefslogtreecommitdiff
path: root/system/nix/config
diff options
context:
space:
mode:
authorPragmatic Cypher <slackbuilds@server.ky>2018-05-11 14:36:57 +0100
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2018-05-12 06:58:27 +0700
commitceabe138cb72b28526a0329bcc81a4af9d3d65b9 (patch)
tree7627dfea0e0b190a114c32d98100a4c5c007bb61 /system/nix/config
parent89a7b0e6c0ece8f0f49c985079c5b512f4730dbb (diff)
downloadslackbuilds-ceabe138cb72b28526a0329bcc81a4af9d3d65b9.tar.gz
system/nix: Updated for version 2.0.2.
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
Diffstat (limited to 'system/nix/config')
-rw-r--r--system/nix/config/rc.nix83
1 files changed, 83 insertions, 0 deletions
diff --git a/system/nix/config/rc.nix b/system/nix/config/rc.nix
new file mode 100644
index 0000000000..82852934af
--- /dev/null
+++ b/system/nix/config/rc.nix
@@ -0,0 +1,83 @@
+#!/bin/sh
+
+# Short-Description: Create lightweight, portable, self-sufficient containers.
+# Description:
+# Docker is an open-source project to easily create lightweight, portable,
+# self-sufficient containers from any application. The same container that a
+# developer builds and tests on a laptop can run at scale, in production, on
+# VMs, bare metal, OpenStack clusters, public clouds and more.
+
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
+
+BASE=nix-daemon
+
+UNSHARE=/usr/bin/unshare
+NIX=/usr/bin/$BASE
+NIX_PIDFILE=/var/run/$BASE.pid
+NIX_LOG=/var/log/nix.log
+NIX_OPTS=
+
+if [ -f /etc/default/$BASE ]; then
+ . /etc/default/$BASE
+fi
+
+# Check nix is present
+if [ ! -x $NIX ]; then
+ echo "$NIX not present or not executable"
+ exit 1
+fi
+
+nix_start() {
+ echo "starting $BASE ..."
+ if [ -x ${NIX} ]; then
+ # If there is an old PID file (no nix-daemon running), clean it up:
+ if [ -r ${NIX_PIDFILE} ]; then
+ if ! ps axc | grep nix-daemon 1> /dev/null 2> /dev/null ; then
+ echo "Cleaning up old ${NIX_PIDFILE}."
+ rm -f ${NIX_PIDFILE}
+ fi
+ fi
+ nohup "${UNSHARE}" -m -- ${NIX} >> ${NIX_LOG} 2>&1 &
+ echo $! > ${NIX_PIDFILE}
+ fi
+}
+
+# Stop nix:
+nix_stop() {
+ echo "stopping $BASE ..."
+ # If there is no PID file, ignore this request...
+ if [ -r ${NIX_PIDFILE} ]; then
+ kill $(cat ${NIX_PIDFILE})
+ fi
+ rm -f ${NIX_PIDFILE}
+}
+
+# Restart docker:
+nix_restart() {
+ nix_stop
+ nix_start
+}
+
+case "$1" in
+'start')
+ nix_start
+ ;;
+'stop')
+ nix_stop
+ ;;
+'restart')
+ nix_restart
+ ;;
+'status')
+ if [ -f ${NIX_PIDFILE} ] && ps -o cmd $(cat ${NIX_PIDFILE}) | grep -q $BASE ; then
+ echo "status of $BASE: running"
+ else
+ echo "status of $BASE: stopped"
+ fi
+ ;;
+*)
+ echo "usage $0 start|stop|restart|status"
+esac
+
+exit 0