assert(env.GLUON_LANGS)


config('GLUON_SITEDIR', env.GLUON_SITEDIR)
config('GLUON_VERSION', env.GLUON_VERSION)
config('GLUON_SITE_VERSION', env.GLUON_SITE_VERSION)
config('GLUON_RELEASE', env.GLUON_RELEASE)

try_config('GLUON_AUTOUPDATER_BRANCH', env.GLUON_AUTOUPDATER_BRANCH)
try_config('GLUON_AUTOUPDATER_ENABLED', istrue(env.GLUON_AUTOUPDATER_ENABLED))

for lang in string.gmatch(env.GLUON_LANGS, '%S+') do
	try_config('GLUON_WEB_LANG_' .. lang, true)
end

config('TARGET_' .. env.BOARD, true)
if env.SUBTARGET ~= '' then
	config(string.format('TARGET_%s_%s', env.BOARD, env.SUBTARGET), true)
end

-- Disable non-default feeds in distfeeds.conf
config('FEED_gluon_base', false)

local default_feeds = {}
for feed in string.gmatch(exec_capture_raw('. scripts/default_feeds.sh && echo "$DEFAULT_FEEDS"'), '%S+') do
	default_feeds[feed] = true
end

for feed in string.gmatch(exec_capture_raw('. scripts/modules.sh && echo -n "$FEEDS"'), '%S+') do
	if not default_feeds[feed] then
		config('FEED_' .. feed, false)
	end
end


config('TARGET_ROOTFS_INITRAMFS', false)

config('DEVEL', true)
config('ALL_NONSHARED', true)

try_config('PACKAGE_usbip', false) -- fails to build
try_config('PACKAGE_coova-chilli', false) -- fails to build
try_config('PACKAGE_kmod-ipt-coova', false) -- fails to build
try_config('PACKAGE_libpfring', false) -- fails to build
try_config('PACKAGE_kmod-pf-ring', false) -- fails to build

try_config('PACKAGE_ATH_DEBUG', true)

try_config('PACKAGE_dnsmasq_full_dhcpv6', false)
try_config('PACKAGE_dnsmasq_full_auth', false)
try_config('PACKAGE_dnsmasq_full_ipset', false)
try_config('PACKAGE_dnsmasq_full_nftset', false)
try_config('PACKAGE_dnsmasq_full_conntrack', false)
try_config('PACKAGE_dnsmasq_full_noid', false)
try_config('PACKAGE_dnsmasq_full_broken_rtc', false)
try_config('PACKAGE_dnsmasq_full_rtc', false)

try_config('TARGET_SQUASHFS_BLOCK_SIZE', 256)

config('KERNEL_PROC_STRIPPED', true)
config('KERNEL_AIO', false)
try_config('KERNEL_IO_URING', false)
config('KERNEL_FHANDLE', false)
config('KERNEL_FANOTIFY', false)
config('KERNEL_CGROUPS', false)
-- KERNEL_NAMESPACES is required for procd-ujail
-- This option is enabled by default on non small flash targets
config('KERNEL_NAMESPACES', true)
config('KERNEL_IP_MROUTE', false)
config('KERNEL_IPV6_MROUTE', false)
config('KERNEL_IPV6_SEG6_LWTUNNEL', false)
config('KERNEL_SWAP', false)
config('SECCOMP', false)
config('KERNEL_SECCOMP', false)
-- kmod-mt7915e pulls in CONFIG_KERNEL_RELAY
-- use try_config, so enabling the package is still possible
try_config('PACKAGE_kmod-mt7915e', false)

try_config('OONF_GENERIC_HTTP', true)

config('COLLECT_KERNEL_DEBUG', true)

config('TARGET_MULTI_PROFILE', true)
config('TARGET_PER_DEVICE_ROOTFS', true)

config('GLUON_MULTIDOMAIN', istrue(env.GLUON_MULTIDOMAIN))

try_config('GRUB_TITLE', 'Gluon')

config('AUTOREMOVE', istrue(env.GLUON_AUTOREMOVE))

if (tonumber(env.GLUON_DEBUG) or 0) > 1 then
	config('DEBUG', true)
	config('NO_STRIP', true)
	config('USE_STRIP', false)
	config('USE_SSTRIP', false)

	try_config('TARGET_ROOTFS_PARTSIZE', 500)
elseif istrue(env.GLUON_DEBUG) then
	config('USE_STRIP', true)
	config('USE_SSTRIP', false)
end

config('GLUON_MINIFY', istrue(env.GLUON_MINIFY))

packages {
	'-ca-bundle',
	'-dnsmasq',
	'-kmod-ipt-offload',
	'-kmod-nft-offload',
	'-libustream-mbedtls',
	'-libmbedtls',
	'-nftables',
	'-odhcpd-ipv6only',
	'-ppp',
	'-ppp-mod-pppoe',
	'-wpad-mini',
	'-wpad-basic',
	'-wpad-basic-mbedtls',
	'-firewall4',
	'gluon-core',
	'ip6tables-zz-legacy',
}
