Commit graph

954 commits

Author SHA1 Message Date
Daniel Barlow
bd908307c4 print module pathname if it contains services
so that the user knows what to add to their imports
2023-08-16 22:26:40 +01:00
Daniel Barlow
d7785d9d75 if no preamble, print module pathname as headline
this was supposed to work already but was broken
2023-08-16 22:26:40 +01:00
Daniel Barlow
f93c03c98a improve descriptions for base and busybox 2023-08-16 22:26:31 +01:00
Daniel Barlow
519de0b55c module docs: service modules are listed after plain modules 2023-08-12 20:10:40 +01:00
Daniel Barlow
f20d1cfc01 print description only if present 2023-08-12 18:16:20 +01:00
Daniel Barlow
e039783e67 exclude outputs from doc 2023-08-12 18:16:06 +01:00
Daniel Barlow
dc4b7ebffd module docs: print examples 2023-08-11 21:12:57 +01:00
Daniel Barlow
bd8d00fe13 TODO for modules phase 2023-08-11 18:28:30 +01:00
Daniel Barlow
b81604870b extract kernel config options from base module
we then "import" them straight back into base.nix - it's not
as though you can opt out of having a kernel. But this means
they'll appear separately in the documentation
2023-08-11 18:15:17 +01:00
Daniel Barlow
3ea40f95dc convert pppoe to serviceDefn 2023-08-10 22:53:45 +01:00
Daniel Barlow
2942c465b9 add ssh module 2023-08-10 22:53:21 +01:00
Daniel Barlow
2a29a00dfe much text, such doc, very wow 2023-08-09 22:27:37 +01:00
Daniel Barlow
3669a4000f explain (badly) the module/service dynamic 2023-08-09 22:27:18 +01:00
Daniel Barlow
f7b507587d print modules in consistent (alphabetical) order 2023-08-09 22:26:50 +01:00
Daniel Barlow
be044cb59e doc: print headline for modules with no preamble 2023-08-07 23:08:41 +01:00
Daniel Barlow
5cff862ae9 add preamble text to each service-providing-module 2023-08-07 23:03:49 +01:00
Daniel Barlow
615c2de537 extract module top-level comment to docs 2023-08-07 22:14:58 +01:00
Daniel Barlow
6d619ee8b5 add some missing descriptions 2023-08-07 21:43:12 +01:00
Daniel Barlow
59a41a712b fix underline 2023-08-06 22:26:00 +01:00
Daniel Barlow
f3e32115ee extremely hacky first pass at autogenerated module docs 2023-08-06 22:25:37 +01:00
Daniel Barlow
2414dd4b55 convert ntp to serviceDefn 2023-08-05 14:16:54 +01:00
Daniel Barlow
93e04bb834 convert bridge service to serviceDefn 2023-08-05 14:10:14 +01:00
Daniel Barlow
f82501d278 update hostapd to "build" syntax 2023-08-05 12:21:18 +01:00
Daniel Barlow
90c1d59aca convert firewall service to new serviceDefn
this is a bit kludgey with dependencies, need to
come back and look at that
2023-08-05 12:07:35 +01:00
Daniel Barlow
fbb2c04132 move module-based-service parameter types into service
This is in preparation for writing something that extracts them
into documentation.

user configurations now call config.system.service.foo.build { ...params }
instead of config.system.service.foo

the parameter type definitions themselves now move into the
config stanza of the module referencing the service

new helper function  liminix.callService

The only service moved so far is dnsmasq
2023-08-04 20:39:29 +01:00
Daniel Barlow
c3631f4c9d improve grammar of mkEnableOption descriptions 2023-08-04 20:19:27 +01:00
Daniel Barlow
4689cebf8d fix illegal module options 2023-08-04 20:07:06 +01:00
Daniel Barlow
7fad66ff27 fix makestep type 2023-07-22 23:50:01 +01:00
Daniel Barlow
9994c161d4 DRY up wireless config 2023-07-22 23:37:01 +01:00
Daniel Barlow
bf1d9beec1 add first version of ntp module 2023-07-22 23:25:25 +01:00
Daniel Barlow
e952f55f40 markup 2023-07-20 12:07:09 +01:00
Daniel Barlow
4396afa97b inline excessive lets 2023-07-20 12:05:36 +01:00
Daniel Barlow
9b70fd62f6 extract bridge to module-based services 2023-07-20 12:02:09 +01:00
Daniel Barlow
86e73317ee alias config.system.service 2023-07-20 11:28:45 +01:00
Daniel Barlow
5bf8e8522a update wlan test to use module 2023-07-16 17:56:07 +01:00
Daniel Barlow
648ea5613b use module-based-service for hostapd 2023-07-16 17:51:50 +01:00
Daniel Barlow
17abd42cf3 mote that modules are in a state of flux 2023-07-16 17:51:50 +01:00
Daniel Barlow
f73a9d82dc add comments 2023-07-16 17:51:50 +01:00
Daniel Barlow
1117f98afc remove redundant let 2023-07-16 17:51:50 +01:00
Daniel Barlow
d7f3e05063 turn nftables firewall into a service-providing module 2023-07-16 17:51:50 +01:00
Daniel Barlow
73e5916cc5 thunk 2023-07-15 23:40:16 +01:00
Daniel Barlow
669af24247 make a module for dnsmasq 2023-07-14 23:18:21 +01:00
Daniel Barlow
5fee3e54d2 use ppp module in pppoe test 2023-07-14 22:23:11 +01:00
Daniel Barlow
df6cfe1cd5 move pppoe service derivation into ppp module dir 2023-07-14 21:35:59 +01:00
Daniel Barlow
c13defc891 rename modules/ppp.nix -> modules/ppp/default.nix 2023-07-14 21:08:33 +01:00
Daniel Barlow
682183a88d move typeChecked into pkgs.liminix.lib 2023-07-14 20:22:29 +01:00
Daniel Barlow
69e6eb5a89 accept attr args to pppoe service, and typecheck them
We use (abuse, arguably) the nixos module system for typechecking.  Un
the plus side, it gives us documentation of the options and their
expected types. On the downside, the error message doesn't tell us
the file in which the error was encountered.

(This is subject to change, if I can find a better way)
2023-07-14 16:53:36 +01:00
Daniel Barlow
9441f48819 new ppp module, used by rotuer
The objective here is that services which depend on global config
(e.g. kernel config or busybox options or static paths in the
filesystem) now live under config.system.service, and are added
to that collection by the module that defines the necessary state.

This is a first step: the services will be configured by a typechecked
attr set instead of the arbitrary arguments that
pkgs.liminix.networking.pppoe accepts
2023-07-13 19:44:14 +01:00
Daniel Barlow
2e50368bd2 rename config.outputs to config.system.outputs
New rules: everything under "config" that isn't actually configuration
(e.g. build products) will in future live in config.system. This is
the first step.
2023-07-13 19:24:59 +01:00
Daniel Barlow
492317623d more thoughts about modules 2023-07-13 11:54:50 +01:00