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

START=95
STOP=10
USE_PROCD=1

PROG=/usr/sbin/mitmproxyctl
NAME=mitmproxy
CONFIG=mitmproxy

start_instance() {
	local instance="$1"
	local enabled container_name

	config_get enabled "$instance" enabled '0'
	config_get container_name "$instance" container_name "mitmproxy-$instance"

	[ "$enabled" = "1" ] || return 0

	echo "Starting mitmproxy instance: $instance ($container_name)"

	procd_open_instance "$instance"
	procd_set_param command "$PROG" service-run "$instance"
	procd_set_param respawn 3600 5 5
	procd_set_param stdout 1
	procd_set_param stderr 1
	procd_close_instance
}

start_service() {
	local main_enabled
	config_load "$CONFIG"
	config_get main_enabled main enabled '0'

	[ "$main_enabled" = "1" ] || {
		echo "mitmproxy is disabled. Enable with: uci set mitmproxy.main.enabled=1"
		return 0
	}

	# Start all enabled instances
	config_foreach start_instance instance
}

stop_instance() {
	local instance="$1"
	"$PROG" service-stop "$instance" 2>/dev/null
}

stop_service() {
	config_load "$CONFIG"
	config_foreach stop_instance instance
	# Also stop legacy single instance
	"$PROG" service-stop 2>/dev/null
}

reload_service() {
	stop
	start
}

service_triggers() {
	procd_add_reload_trigger "$CONFIG"
}

status() {
	"$PROG" status
}
