{ inputs, ... }: let getProfiles = pkgs: inputs.openwrt-imagebuilder.lib.profiles { inherit pkgs; release = "snapshot"; }; in { flake.lib.mkOpenwrtImage = { pkgs, hostname, timezone, ipaddr, packages ? [ ], uci ? "", }: inputs.openwrt-imagebuilder.lib.build ( (getProfiles pkgs).identifyProfile "glinet_gl-mt6000" // { packages = [ # TODO does this include everything that the web firmware builder includes? "auc" "dawn" "luci-app-attendedsysupgrade" "luci-app-dawn" "luci-app-nextdns" "luci-ssl" "nextdns" "tailscale" ] ++ packages; # TODO set up SSH config (register public keys, disable password login, ...) files = pkgs.runCommand "image-files" { } '' mkdir -p $out/etc/uci-defaults cat > $out/etc/uci-defaults/99-custom <>/etc/modules.conf # Set up automatic upgrades # TODO download upgrade script from GitHub gist # wget [github gist url] # cat "0 3 * * * /path/to/gist/script" >>/etc/crontabs/root EOF ''; } ); }