#!/bin/sh -e

# control state
state="$(cat "$__object/parameter/state")"

case "$state" in
    # install gunicorn
    enabled|disabled)
        curr_installed="$(cat "$__object/explorer/installed")"
        should_installed="$(cat "$__object/explorer/should_installed")"

        # gunicorn version change
        if [ "$curr_installed" != "$should_installed" ]; then
            # (re)installing gunicorn
            echo "/opt/netbox/venv/bin/pip3 install 'gunicorn==$should_installed'"

            if [ "$curr_installed" != "" ]; then
                printf "updated %s to %s\n" "$curr_installed" "$should_installed" \
                    >> "$__messages_out"
            else
                printf "installed\n" >> "$__messages_out"
            fi
            do_restart=yes
        fi

        # configuration changes
        if grep -q "^__file/opt/netbox/gunicorn.py:" "$__messages_in"; then
            do_restart=yes
            printf "configured\n" >> "$__messages_out"
        fi


        # restart gunicorn
        if [ "$do_restart" ] && [ "$state" != "disabled" ]; then
            cat << EOF
# Restart service
systemctl restart gunicorn-netbox
EOF
        fi
        ;;

    # uninstall
    absent)
        # check if installed
        if [ -s "$__object/explorer/installed" ]; then
            # service already disabled
            echo "/opt/netbox/venv/bin/pip3 uninstall -y gunicorn"
            printf "uninstalled\n" >> "$__messages_out"
        fi
esac
