Updated spn-hub install script to remove portmaster-start dependency.

This commit is contained in:
Natanael Rodriguez Ramos
2025-05-28 11:40:15 +01:00
parent 25c1504771
commit dff43809e2
2 changed files with 340 additions and 14 deletions

View File

@@ -14,7 +14,7 @@ set -e
ARCH=
INSTALLDIR=
SPNBINARY=
PMSTART=
ENABLENOW=
INSTALLSYSTEMD=
SYSTEMDINSTALLPATH=
@@ -22,7 +22,7 @@ SYSTEMDINSTALLPATH=
apply_defaults() {
ARCH=${ARCH:-amd64}
INSTALLDIR=${INSTALLDIR:-/opt/safing/spn}
SPNBINARY=${SPNBINARY:-https://updates.safing.io/latest/linux_${ARCH}/hub/spn-hub}
PMSTART=${PMSTART:-https://updates.safing.io/latest/linux_${ARCH}/start/portmaster-start}
SYSTEMDINSTALLPATH=${SYSTEMDINSTALLPATH:-/etc/systemd/system/spn.service}
if command_exists systemctl; then
@@ -98,26 +98,31 @@ ensure_install_dir() {
mkdir -p ${INSTALLDIR}
}
download_spnbinary() {
log "Downloading SPN binary ..."
local dest="${INSTALLDIR}/hub"
download_pmstart() {
log "Downloading portmaster-start ..."
local dest="${INSTALLDIR}/portmaster-start"
if [ -f "${dest}" ]; then
warn "Overwriting existing hub at ${dest}"
warn "Overwriting existing portmaster-start at ${dest}"
fi
download_file ${SPNBINARY} ${dest}
download_file ${PMSTART} ${dest}
log "Changing permissions"
chmod a+x ${dest}
}
download_updates() {
log "Downloading updates ..."
${INSTALLDIR}/portmaster-start --data=${INSTALLDIR} update
}
setup_systemd() {
log "Installing systemd service unit ..."
if [ ! "${INSTALLSYSTEMD}" = "yes" ]; then
warn "Skipping setup of systemd service unit"
echo "To launch the hub, execute the following as root:"
echo ""
echo "${INSTALLDIR}/hub"
echo "${INSTALLDIR}/portmaster-start --data ${INSTALLDIR} hub"
echo ""
return
fi
@@ -141,7 +146,7 @@ LimitNOFILE=infinity
Environment=LOGLEVEL=warning
Environment=SPN_ARGS=
EnvironmentFile=-/etc/default/spn
ExecStart=${INSTALLDIR}/hub --log \$LOGLEVEL \$SPN_ARGS
ExecStart=${INSTALLDIR}/portmaster-start --data ${INSTALLDIR} hub -- --log \$LOGLEVEL \$SPN_ARGS
[Install]
WantedBy=multi-user.target
@@ -205,7 +210,7 @@ confirm_config() {
log "Installation configuration:"
echo ""
echo " Architecture: ${BOLD}${ARCH}${RESET}"
echo " Download-URL: ${BOLD}${SPNBINARY}${RESET}"
echo " Download-URL: ${BOLD}${PMSTART}${RESET}"
echo " Target Dir: ${BOLD}${INSTALLDIR}${RESET}"
echo "Install systemd: ${BOLD}${INSTALLSYSTEMD}${RESET}"
echo " Unit path: ${BOLD}${SYSTEMDINSTALLPATH}${RESET}"
@@ -242,7 +247,7 @@ ${BOLD}Options:${RESET}
${GREEN}-t, --target PATH${RESET} Configure the installation directory.
${GREEN}-h, --help${RESET} Display this help text
${GREEN}-a, --arch${RESET} Configure the binary architecture.
${GREEN}-u, --url URL${RESET} Set download URL for spn-hub.
${GREEN}-u, --url URL${RESET} Set download URL for portmaster start.
${GREEN}-S, --no-systemd${RESET} Do not install systemd service unit.
${GREEN}-s, --service-path PATH${RESET} Location for the systemd unit file.
EOT
@@ -273,7 +278,7 @@ main() {
shift
;;
--url | -u)
SPNBINARY=$2
PMSTART=$2
shift
;;
--no-systemd | -S)
@@ -310,11 +315,12 @@ EOT
# Setup hub
ensure_install_dir
download_spnbinary
download_pmstart
download_updates
write_config_file "${INSTALLDIR}/config.json"
# setup systemd
setup_systemd
}
main "$@"
main "$@"