From e584066f3c177ea86fdb537e514c297037ef4865 Mon Sep 17 00:00:00 2001 From: Kris Moore Date: Mon, 2 May 2016 15:04:07 -0400 Subject: [PATCH 1/2] Add rc.d and sysadm-bridge-start --- src/bridge/bridge.pro | 6 ++--- src/bridge/sysadm-bridge-start | 25 ++++++++++++++++++ src/port-files/pkg-plist | 1 + src/rc.d/sysadm-bridge | 46 ++++++++++++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 src/bridge/sysadm-bridge-start create mode 100755 src/rc.d/sysadm-bridge diff --git a/src/bridge/bridge.pro b/src/bridge/bridge.pro index bc1de8f..8d8c277 100644 --- a/src/bridge/bridge.pro +++ b/src/bridge/bridge.pro @@ -17,10 +17,10 @@ SOURCES += main.cpp \ TARGET=sysadm-bridge target.path=/usr/local/bin -#scripts.path=/usr/local/bin/ -#scripts.extra=install sysadm-server $(INSTALL_ROOT)/usr/local/bin/ +scripts.path=/usr/local/bin/ +scripts.extra=install sysadm-bridge-start $(INSTALL_ROOT)/usr/local/bin/ -INSTALLS += target +INSTALLS += target scripts QMAKE_LIBDIR = /usr/local/lib/qt5 /usr/local/lib diff --git a/src/bridge/sysadm-bridge-start b/src/bridge/sysadm-bridge-start new file mode 100644 index 0000000..89c91ac --- /dev/null +++ b/src/bridge/sysadm-bridge-start @@ -0,0 +1,25 @@ +#!/bin/sh +# Helper script which auto-gens a new SSL key for each start +# of the sysadm server + +ssl_keygen() +{ + if [ ! -d "/usr/local/etc/sysadm" ] ; then + mkdir -p /usr/local/etc/sysadm + fi + openssl req -x509 -nodes -newkey rsa:2048 \ + -keyout /usr/local/etc/sysadm/bridgeserver.key \ + -out /usr/local/etc/sysadm/bridgeserver.crt -days 1024 \ + -subj "/C=US/ST=MY/L=NULL/O=SysAdm/OU=SysAdm/CN=SysAdm/emailAddress=none@example.org" 2>/dev/null +} + +export PATH="${PATH}:/usr/local/bin:/usr/local/sbin" +ssl_keygen "$1" +command="/usr/local/bin/sysadm-bridge" +flags="" + +if [ -n "$1" ] ; then + flags="$1" +fi + +exec $command $flags diff --git a/src/port-files/pkg-plist b/src/port-files/pkg-plist index f5cafe3..2bbc12d 100644 --- a/src/port-files/pkg-plist +++ b/src/port-files/pkg-plist @@ -4,6 +4,7 @@ etc/launchd/daemons/org.pcbsd.sysadm.json.dist etc/launchd/daemons/org.pcbsd.sysadm-rest.json.dist etc/sysadm.conf.dist etc/rc.d/sysadm +etc/rc.d/sysadm-bridge etc/rc.d/sysadm-rest share/launchd/daemons/org.pcbsd.sysadm.json share/launchd/daemons/org.pcbsd.sysadm-rest.json diff --git a/src/rc.d/sysadm-bridge b/src/rc.d/sysadm-bridge new file mode 100755 index 0000000..b6dc200 --- /dev/null +++ b/src/rc.d/sysadm-bridge @@ -0,0 +1,46 @@ +#!/bin/sh +# $FreeBSD$ + +# PROVIDE: sysadm-bridge +# REQUIRE: LOGIN cleanvar +# KEYWORD: shutdown + +# +# Add the following lines to /etc/rc.conf to enable sysadm: +# sysadm_bridge_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable sysadm + +. /etc/rc.subr + +name="sysadm_bridge" +rcvar=sysadm_bridge_enable + +start_cmd="sysadm_bridge_start" +stop_cmd="sysadm_bridge_stop" +flags="" + +[ -z "$sysadm_bridge_enable" ] && sysadm_bridge_enable="NO" + +load_rc_config $name + +sysadm_bridge_stop() +{ + if [ -e "/var/run/sysadm-bridge.pid" -o -e "/var/run/sysadm-bridge-daemon.pid" ] ; then + pkill -9 -F /var/run/sysadm-bridge-daemon.pid >/dev/null 2>/dev/null + pkill -9 -F /var/run/sysadm-bridge.pid >/dev/null 2>/dev/null + rm /var/run/sysadm-bridge-daemon.pid 2>/dev/null + rm /var/run/sysadm-bridge.pid 2>/dev/null + fi +} + +sysadm_start() +{ + export PATH="${PATH}:/usr/local/bin:/usr/local/sbin" + sysadm_stop + echo "Starting sysadm bridge..." + command="/usr/local/bin/sysadm-bridge" + daemon -r -P /var/run/sysadm-bridge-daemon.pid -p /var/run/sysadm-bridge.pid $command $flags + chmod 744 /var/run/sysadm-bridge.pid >/dev/null 2>/dev/null +} + +run_rc_command "$1" From ef792121e5dc8ae44c61c0dd210d871c5220073f Mon Sep 17 00:00:00 2001 From: Kris Moore Date: Mon, 2 May 2016 15:04:34 -0400 Subject: [PATCH 2/2] Use script as rc.d target --- src/rc.d/sysadm-bridge | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rc.d/sysadm-bridge b/src/rc.d/sysadm-bridge index b6dc200..e9318b1 100755 --- a/src/rc.d/sysadm-bridge +++ b/src/rc.d/sysadm-bridge @@ -38,7 +38,7 @@ sysadm_start() export PATH="${PATH}:/usr/local/bin:/usr/local/sbin" sysadm_stop echo "Starting sysadm bridge..." - command="/usr/local/bin/sysadm-bridge" + command="/usr/local/bin/sysadm-bridge-start" daemon -r -P /var/run/sysadm-bridge-daemon.pid -p /var/run/sysadm-bridge.pid $command $flags chmod 744 /var/run/sysadm-bridge.pid >/dev/null 2>/dev/null }