#!/bin/sh -e # __netbox_uwsgi/manifest # Check states state="" unit_state="" param_state="$(cat "$__object/parameter/state")" case "$param_state" in enabled|disabled) state="present" unit_state="$param_state" ;; absent) state="absent" unit_state="disabled" ;; *) # does not exist printf "The state '%s' does not exist, can't continue!\n" "$param_state" >&2 exit 2 ;; esac mkdir "$__object/files" # check if systemd sockets will be used if [ -f "$__object/parameter/bind-to" ]; then SYSTEMD_SOCKET="yes" fi if find "$__object/parameter/" -maxdepth 1 -name "*-bind" -print -quit | grep -q .; then SYSTEMD_SOCKET="no" fi echo "$SYSTEMD_SOCKET" > "$__object/files/systemd_socket" if [ "$state" = "present" ]; then # already checked outside this if-clause export SYSTEMD_SOCKET PROTOCOL="$(cat "$__object/parameter/protocol")" export PROTOCOL if [ -f "$__object/parameter/serve-static" ]; then STATIC_MAP="yes" export STATIC_MAP fi # process template "$__type/files/uwsgi.ini.sh" > "$__object/files/uwsgi.ini" # uwsgi config file # TODO maybe patching with __key_value cause of .ini ? __file /opt/netbox/uwsgi.ini \ --mode 644 --owner netbox \ --source "$__object/files/uwsgi.ini" else # absent config file __file /opt/netbox/uwsgi.ini --state absent fi # handle the systemd socket if [ "$SYSTEMD_SOCKET" = "yes" ]; then TYPE="uWSGI" export TYPE # generate and set the socket unit "$__type/files/netbox.socket.sh" "$__object/parameter/bind-to" \ > "$__object/files/netbox.socket" __systemd_unit uwsgi-netbox.socket \ --state "$state" --enablement-state "$unit_state" \ --source "$__object/files/netbox.socket" --restart else # remove the systemd socket unit __systemd_unit uwsgi-netbox.socket --state absent fi # install service file "$__type/files/netbox.service.sh" > "$__object/files/netbox.service" __systemd_unit uwsgi-netbox.service \ --state "$state" --enablement-state "$unit_state" \ --source "$__object/files/netbox.service" --restart