#!/bin/sh /etc/rc.common

START=99
USE_PROCD=1
NAME=copyparty
PROG=/usr/bin/python3

_add_volume() {
	local cfg="$1"
	local src dst flags
	config_get src   "$cfg" src
	config_get dst   "$cfg" dst
	config_get flags "$cfg" flags 'r'
	[ -n "$src" ] && [ -n "$dst" ] && \
		procd_append_param command -v "${src}:${dst}:${flags}"
}

_add_account() {
	local cfg="$1"
	local user pass
	config_get user "$cfg" user
	config_get pass "$cfg" pass
	[ -n "$user" ] && [ -n "$pass" ] && \
		procd_append_param command -a "${user}:${pass}"
}

start_service() {
	config_load "$NAME"

	local enabled
	config_get_bool enabled config enabled 0
	[ "$enabled" = "1" ] || return 0

	local port name script usernames tls_cert
	config_get port      config port      3923
	config_get name      config name      'OWRT-NAS'
	config_get script    config script    '/mnt/raid/copyparty-en.py'
	config_get_bool usernames config usernames 0
	config_get tls_cert  config tls_cert  ''

	procd_open_instance
	procd_set_param command "$PROG" "$script" -p "$port" --name "$name"
	[ "$usernames" = "1" ] && procd_append_param command --usernames
	[ -n "$tls_cert" ] && procd_append_param command --cert "$tls_cert"

	config_foreach _add_volume  volume
	config_foreach _add_account account

	procd_set_param respawn
	procd_set_param stdout 1
	procd_set_param stderr 1
	procd_close_instance
}

service_triggers() {
	procd_add_reload_trigger "$NAME"
}
