From 1f6204282847361731d1cacc47a9e057c30e694d Mon Sep 17 00:00:00 2001 From: Kris Moore Date: Tue, 12 Apr 2016 16:55:03 -0400 Subject: [PATCH] Add new relaunchd configuration files, but keep rc.d so both can be used --- .gitignore | 4 ++-- src/daemons.d/org.pcbsd.sysadm-rest.json.dist | 5 ++++ src/daemons.d/org.pcbsd.sysadm.json.dist | 5 ++++ src/port-files/Makefile | 2 ++ src/port-files/pkg-plist | 3 +++ src/rc.d/sysadm | 12 ---------- src/rc.d/sysadm-rest | 12 ---------- src/server/server.pro | 6 +++-- src/server/sysadm-server | 24 +++++++++++++++++++ src/sysadm.pro | 5 +++- 10 files changed, 49 insertions(+), 29 deletions(-) create mode 100644 src/daemons.d/org.pcbsd.sysadm-rest.json.dist create mode 100644 src/daemons.d/org.pcbsd.sysadm.json.dist create mode 100644 src/server/sysadm-server diff --git a/.gitignore b/.gitignore index 7c20eab..915a94e 100644 --- a/.gitignore +++ b/.gitignore @@ -41,13 +41,13 @@ src/server/moc_WebSocket.cpp src/server/moc_WebSocket.o src/server/NetDevice.o src/server/sysadm-beadm.o +src/server/sysadm-binary src/server/sysadm-firewall.o src/server/sysadm-general.o src/server/sysadm-iocage.o src/server/sysadm-iohyve.o src/server/sysadm-lifepreserver.o src/server/sysadm-network.o -src/server/sysadm-server src/server/sysadm-servicemanager.o src/server/sysadm-systeminfo.o src/server/sysadm-systemmanager.o @@ -59,4 +59,4 @@ src/server/WebServer.o src/server/WebSocket.o tests/node_modules/ *.o -*/moc_* \ No newline at end of file +*/moc_* diff --git a/src/daemons.d/org.pcbsd.sysadm-rest.json.dist b/src/daemons.d/org.pcbsd.sysadm-rest.json.dist new file mode 100644 index 0000000..350805d --- /dev/null +++ b/src/daemons.d/org.pcbsd.sysadm-rest.json.dist @@ -0,0 +1,5 @@ +{ + "Label": "org.pcbsd.sysadm-rest", + "ProgramArguments": [ "/usr/local/bin/sysadm-server", "-rest" ], + "RunAtLoad": true +} diff --git a/src/daemons.d/org.pcbsd.sysadm.json.dist b/src/daemons.d/org.pcbsd.sysadm.json.dist new file mode 100644 index 0000000..ee6955c --- /dev/null +++ b/src/daemons.d/org.pcbsd.sysadm.json.dist @@ -0,0 +1,5 @@ +{ + "Label": "org.pcbsd.sysadm-rest", + "Program": "/usr/local/bin/sysadm-server", + "RunAtLoad": true +} diff --git a/src/port-files/Makefile b/src/port-files/Makefile index 5e5e53a..e2045bf 100644 --- a/src/port-files/Makefile +++ b/src/port-files/Makefile @@ -10,6 +10,8 @@ COMMENT= PC-BSD SysAdm API server LICENSE= BSD3CLAUSE +RUN_DEPENDS= ${LOCALBASE}/bin/launchctl:sysutils/relaunchd + WRKSRC_SUBDIR= src USE_QT5= concurrent core network buildtools qmake gui websockets USES= pkgconfig tar:xz qmake diff --git a/src/port-files/pkg-plist b/src/port-files/pkg-plist index e1b7b51..f8cad58 100644 --- a/src/port-files/pkg-plist +++ b/src/port-files/pkg-plist @@ -1,4 +1,7 @@ +bin/sysadm-binary bin/sysadm-server +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-rest diff --git a/src/rc.d/sysadm b/src/rc.d/sysadm index 1be3cf0..bc45617 100755 --- a/src/rc.d/sysadm +++ b/src/rc.d/sysadm @@ -23,17 +23,6 @@ flags="" load_rc_config $name -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/wsserver.key \ - -out /usr/local/etc/sysadm/wsserver.crt -days 1024 \ - -subj "/C=US/ST=MY/L=NULL/O=SysAdm/OU=SysAdm/CN=SysAdm/emailAddress=none@example.org" 2>/dev/null -} - sysadm_stop() { if [ -e "/var/run/sysadm.pid" -o -e "/var/run/sysadm-daemon.pid" ] ; then @@ -48,7 +37,6 @@ sysadm_start() { export PATH="${PATH}:/usr/local/bin:/usr/local/sbin" sysadm_stop - ssl_keygen echo "Starting sysadm..." command="/usr/local/bin/sysadm-server" daemon -r -P /var/run/sysadm-daemon.pid -p /var/run/sysadm.pid $command $flags diff --git a/src/rc.d/sysadm-rest b/src/rc.d/sysadm-rest index d77c8ba..5362c95 100755 --- a/src/rc.d/sysadm-rest +++ b/src/rc.d/sysadm-rest @@ -23,17 +23,6 @@ flags="-rest" load_rc_config $name -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/restserver.key \ - -out /usr/local/etc/sysadm/restserver.crt -days 1024 \ - -subj "/C=US/ST=MY/L=NULL/O=SysAdm/OU=SysAdm/CN=SysAdm/emailAddress=none@example.org" 2>/dev/null -} - sysadm_rest_stop() { if [ -e "/var/run/sysadm-rest.pid" ] ; then @@ -46,7 +35,6 @@ sysadm_rest_start() { export PATH="${PATH}:/usr/local/bin:/usr/local/sbin" sysadm_rest_stop - ssl_keygen echo "Starting sysadm (REST)..." command="/usr/local/bin/sysadm-server" daemon -r -P /var/run/sysadm-rest-daemon.pid -p /var/run/sysadm-rest.pid $command $flags diff --git a/src/server/server.pro b/src/server/server.pro index 1fabc91..f12538f 100644 --- a/src/server/server.pro +++ b/src/server/server.pro @@ -30,11 +30,13 @@ SOURCES += main.cpp \ #Now pull in the the subsystem library classes and such include("library/library.pri"); -TARGET=sysadm-server +TARGET=sysadm-binary target.path=/usr/local/bin +scripts.path=/usr/local/bin/ +scripts.extra=install sysadm-server $(INSTALL_ROOT)/usr/local/bin/ -INSTALLS += target +INSTALLS += target scripts QMAKE_LIBDIR = /usr/local/lib/qt5 /usr/local/lib diff --git a/src/server/sysadm-server b/src/server/sysadm-server new file mode 100644 index 0000000..03f51e9 --- /dev/null +++ b/src/server/sysadm-server @@ -0,0 +1,24 @@ +#!/bin/sh + +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/restserver.key \ + -out /usr/local/etc/sysadm/restserver.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 +command="/usr/local/bin/sysadm-binary" +flags="" + +if [ -n "$1" ] ; then + flags="$1" +fi + +exec $command $flags diff --git a/src/sysadm.pro b/src/sysadm.pro index b281618..5fac439 100644 --- a/src/sysadm.pro +++ b/src/sysadm.pro @@ -10,7 +10,10 @@ SUBDIRS+= server rcd.path = /usr/local/etc/rc.d/ rcd.extra = cp rc.d/* $(INSTALL_ROOT)/usr/local/etc/rc.d/ +daemons.path = /usr/local/etc/launchd/daemons/ +daemons.extra = cp daemons.d/* $(INSTALL_ROOT)/usr/local/etc/launchd/daemons/ + conf.path = /usr/local/etc/ conf.extra = cp conf/sysadm.conf ${INSTALL_ROOT}/usr/local/etc/sysadm.conf.dist -INSTALLS += rcd conf +INSTALLS += rcd conf daemons