astro / astro/nix-openwrt-imagebuilder

PR to support modular interface?

Open
#22 7 comments 3 reactions 0 assignees View on GitHub
Dominant language
Nix
Stars
267
Forks
31
PR merge metrics
No merged PRs in 30d

Description

Hello, and thanks for this neat and useful toolchain. I'm trying to do a better job of managing my OpenWRT-based router and APs, and as a confirmed Nixaholic this repository is just what I needed.

Would you be interested in a PR introducing a modular interface to the OpenWRT image builder code? I have a (very) rough cut at such an interface up on SourceHut [here](https://git.sr.ht/~tomeon/nix-openwrt-imagebuilder-module).

The high-level view:

```nix
{
openwrtImages.default = self.lib.openwrtImage {
modules = [
{
image = {
profileName = "avm_fritz7412";
packages.include = ["tcpdump"];
packages.exclude = ["ppp"];
disabledServices = ["dnsmasq"];
snippets."etc/uci-defaults/99-custom".text = ''
uci -q batch << EOI
set system.@system[0].hostname='testap'
commit
EOI
'';
};
}
];
};
}
```

If specified as a flake output, the image and associated assets could then be built with `nix build '.#openwrtImages.default.config.system.build.image' `. I plan to add a wrapper command for this that would permit doing, say, `nix-openwrt-imagebuild '.#default'`.

Any interest in integrating something like this in your project?

Thank you!

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the current OpenWRT image builder code and the rough SourceHut prototype linked in the issue. Compare the proposed modular interface, flake output, and wrapper command with the repository; the issue does not define files, tests, acceptance criteria, or a completed scope.

Written by the indexing model from the issue text.

Assessment

Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.