#!/bin/sh

# Register NoobWrt as a LuCI theme (skip on upgrade)
if [ "$PKG_UPGRADE" != 1 ]; then
	uci get luci.themes.NoobWrt >/dev/null 2>&1 || \
	uci batch <<-EOF
		set luci.themes.NoobWrt=/luci-static/noobwrt
		set luci.main.mediaurlbase=/luci-static/noobwrt
		commit luci
	EOF
fi

# Ensure the config file exists
touch /etc/config/noobwrt

# Initialise global section type (only if section absent)
uci get noobwrt.global >/dev/null 2>&1 || uci set noobwrt.global=global

# Set each global option only if not already present
uci get noobwrt.global.mode                  >/dev/null 2>&1 || uci set noobwrt.global.mode=dark
uci get noobwrt.global.primary               >/dev/null 2>&1 || uci set noobwrt.global.primary='#7689f4'
uci get noobwrt.global.dark_primary          >/dev/null 2>&1 || uci set noobwrt.global.dark_primary='#7c8ff5'
uci get noobwrt.global.blur                  >/dev/null 2>&1 || uci set noobwrt.global.blur=10
uci get noobwrt.global.blur_dark             >/dev/null 2>&1 || uci set noobwrt.global.blur_dark=10
uci get noobwrt.global.transparency          >/dev/null 2>&1 || uci set noobwrt.global.transparency=0.8
uci get noobwrt.global.transparency_dark     >/dev/null 2>&1 || uci set noobwrt.global.transparency_dark=0.8
uci get noobwrt.global.online_wallpaper      >/dev/null 2>&1 || uci set noobwrt.global.online_wallpaper=none
uci get noobwrt.global.use_exact_resolution  >/dev/null 2>&1 || uci set noobwrt.global.use_exact_resolution=1
uci get noobwrt.global.auto_dark_mode        >/dev/null 2>&1 || uci set noobwrt.global.auto_dark_mode=0

uci commit noobwrt

# Helper: seed a toolbar_item section and its fields if missing
seed_toolbar() {
	local name="$1" title="$2" url="$3" icon="$4" enabled="$5" order="$6"
	uci get noobwrt."$name" >/dev/null 2>&1 || uci set noobwrt."$name"=toolbar_item
	uci get noobwrt."$name".title   >/dev/null 2>&1 || uci set noobwrt."$name".title="$title"
	uci get noobwrt."$name".url     >/dev/null 2>&1 || uci set noobwrt."$name".url="$url"
	uci get noobwrt."$name".icon    >/dev/null 2>&1 || uci set noobwrt."$name".icon="$icon"
	uci get noobwrt."$name".enabled >/dev/null 2>&1 || uci set noobwrt."$name".enabled="$enabled"
	uci get noobwrt."$name".order   >/dev/null 2>&1 || uci set noobwrt."$name".order="$order"
}

seed_toolbar toolbar_home     'Home'        '/cgi-bin/luci/admin/status/overview'           home.png     1 1
seed_toolbar toolbar_vpn      'Passwall'         '/cgi-bin/luci/admin/services/passwall'         vpn.png      1 2
seed_toolbar toolbar_status   'Status'      '/cgi-bin/luci/admin/modem/modemdata'           signal.png   0 2
seed_toolbar toolbar_modem    'Modem'       '/cgi-bin/luci/admin/modem/qmodem'              cell.png     0 3
seed_toolbar toolbar_sms      'SMS'         '/cgi-bin/luci/admin/modem/luci-app-sms-tool-js' sms.png    0 4
seed_toolbar toolbar_data     'Data Usage'  '/cgi-bin/luci/admin/status/netstat'             network.png  0 5
seed_toolbar toolbar_nas      'NAS'         '/cgi-bin/luci/admin/services/samba4'           nas.png      0 6
seed_toolbar toolbar_wireless 'Wireless'    '/cgi-bin/luci/admin/network/wireless'          wifi.png     1 7
seed_toolbar toolbar_firewall 'Firewall'    '/cgi-bin/luci/admin/network/firewall'          firewall.png 0 8
seed_toolbar toolbar_log      'System Log'  '/cgi-bin/luci/admin/status/logs'               info.png     1 9
seed_toolbar toolbar_terminal 'Terminal'    '/cgi-bin/luci/admin/system/ttyd'             terminal.png 1 10
seed_toolbar toolbar_files    'Files'       '/cgi-bin/luci/admin/nas/tinyfilemanager'       files.png    1 12
seed_toolbar toolbar_system   'Settings'    '/cgi-bin/luci/admin/system/noobwrt'            settings.png 1 13

uci commit noobwrt

# Ensure the rpcd wallpaper script is executable so ubus registers it
chmod +x /usr/libexec/rpcd/luci.noobwrt_wallpaper 2>/dev/null

# Reload rpcd so luci.noobwrt_wallpaper is registered on first install
# (only needed when rpcd is already running; harmless if it isn't yet)
/etc/init.d/rpcd reload 2>/dev/null

exit 0
