From e75cb325bc77d512b4f705235599fd04bc1bc034 Mon Sep 17 00:00:00 2001 From: Kamila Souckova Date: Sat, 2 Sep 2017 16:49:21 +0200 Subject: [PATCH 1/3] improve __daemontools on freebsd --- cdist/conf/type/__daemontools/man.rst | 5 ++++ cdist/conf/type/__daemontools/manifest | 27 +++++++++++++++---- .../parameter/default/servicedir | 1 + .../type/__daemontools/parameter/optional | 1 + 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 cdist/conf/type/__daemontools/parameter/default/servicedir diff --git a/cdist/conf/type/__daemontools/man.rst b/cdist/conf/type/__daemontools/man.rst index a8e81e54..bc1b4d33 100644 --- a/cdist/conf/type/__daemontools/man.rst +++ b/cdist/conf/type/__daemontools/man.rst @@ -21,11 +21,16 @@ OPTIONAL PARAMETERS from-package Package to install. Must be compatible with the original daemontools. Example: daemontools-encore. Default: daemontools. +servicedir + Directory to scan for services. Default: `/service` + + BOOLEAN PARAMETERS ------------------ install-init-script Add an init script and set it to start on boot. + EXAMPLES -------- diff --git a/cdist/conf/type/__daemontools/manifest b/cdist/conf/type/__daemontools/manifest index 0763d7be..2f92d658 100755 --- a/cdist/conf/type/__daemontools/manifest +++ b/cdist/conf/type/__daemontools/manifest @@ -1,17 +1,34 @@ -#!/bin/sh -e +;#!/bin/sh -e pkg=$(cat "$__object/parameter/from-package") +servicedir=$(cat "$__object/parameter/servicedir") __package $pkg +__directory $servicedir --mode 755 if [ -f "$__object/parameter/install-init-script" ]; then + os=$(cat "$__global/explorer/os") init=$(cat "$__global/explorer/init") + case $init in init) - __config_file /etc/init.d/svscan --mode 755 --source "$__type/files/init.d-svscan" - require="$require __config_file/etc/init.d/svscan" __start_on_boot svscan - require="$require __start_on_boot/svscan" __process svscan --start 'service svscan start' - ;; + case $os in + freebsd) + __config_file /etc/rc.conf.d/svscan --source - <<-EOT + svscan_enable="YES" + svscan_servicedir="$servicedir" + EOT + require="$require __package/$pkg __directory/$servicedir __config_file/etc/rc.conf.d/svscan" \ + __process svscan --start 'service svscan start' + ;; + *) + __config_file /etc/init.d/svscan --mode 755 --source "$__type/files/init.d-svscan" + require="$require __config_file/etc/init.d/svscan" __start_on_boot svscan + require="$require __package/$pkg __directory/$servicedir __start_on_boot/svscan" \ + __process svscan --start 'service svscan start' + ;; + esac + ;; *) echo "Your init system ($init) is not supported by this type. Submit a patch at github.com/ungleich/cdist!" exit 1 diff --git a/cdist/conf/type/__daemontools/parameter/default/servicedir b/cdist/conf/type/__daemontools/parameter/default/servicedir new file mode 100644 index 00000000..b74e27f6 --- /dev/null +++ b/cdist/conf/type/__daemontools/parameter/default/servicedir @@ -0,0 +1 @@ +/service diff --git a/cdist/conf/type/__daemontools/parameter/optional b/cdist/conf/type/__daemontools/parameter/optional index 8eca305b..22c0805d 100644 --- a/cdist/conf/type/__daemontools/parameter/optional +++ b/cdist/conf/type/__daemontools/parameter/optional @@ -1 +1,2 @@ from-package +servicedir From e9b09e954ba2d8a28aba12db416d668f8434b315 Mon Sep 17 00:00:00 2001 From: Kamila Souckova Date: Sat, 2 Sep 2017 16:50:44 +0200 Subject: [PATCH 2/3] fix typo --- cdist/conf/type/__daemontools/manifest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cdist/conf/type/__daemontools/manifest b/cdist/conf/type/__daemontools/manifest index 2f92d658..c56d1a28 100755 --- a/cdist/conf/type/__daemontools/manifest +++ b/cdist/conf/type/__daemontools/manifest @@ -1,4 +1,4 @@ -;#!/bin/sh -e +#!/bin/sh -e pkg=$(cat "$__object/parameter/from-package") servicedir=$(cat "$__object/parameter/servicedir") From e32d0d1ce72a6ebb9c7d378f5ec5e1435c587726 Mon Sep 17 00:00:00 2001 From: Kamila Souckova Date: Sat, 2 Sep 2017 16:52:14 +0200 Subject: [PATCH 3/3] ...and fix whitespace --- cdist/conf/type/__daemontools/manifest | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cdist/conf/type/__daemontools/manifest b/cdist/conf/type/__daemontools/manifest index c56d1a28..75f26ca0 100755 --- a/cdist/conf/type/__daemontools/manifest +++ b/cdist/conf/type/__daemontools/manifest @@ -16,8 +16,8 @@ if [ -f "$__object/parameter/install-init-script" ]; then freebsd) __config_file /etc/rc.conf.d/svscan --source - <<-EOT svscan_enable="YES" - svscan_servicedir="$servicedir" - EOT + svscan_servicedir="$servicedir" + EOT require="$require __package/$pkg __directory/$servicedir __config_file/etc/rc.conf.d/svscan" \ __process svscan --start 'service svscan start' ;;