modules/README.org

30 lines
1.3 KiB
Org Mode
Raw Permalink Normal View History

2020-12-02 19:46:28 +01:00
#+TITLE: NixOS Modules
2020-12-02 18:51:52 +01:00
#+AUTHOR: spacefrogg
#+EMAIL: git@spacefrogg.net
2020-12-02 23:28:57 +01:00
#+startup: showall
2020-12-02 18:51:52 +01:00
2020-12-02 19:46:28 +01:00
* Modules
** tinydns
2020-12-02 23:28:57 +01:00
A replacement for the upstream tinydns module. This module extends the service
in an incompatible way. You instantiate a service by adding an attribute
=<ipv4-address>= under =services.tinydns=. This flake comes with an extended
=lib= attribute, which you must use in your nixos configuration (e.g. in the
call to =nixpkgs#lib.nixosSystem=) to have special functions under =lib.tinydns=
available that create tinydns records from functions and arguments. See the
module documentation for currently available functions.
2020-12-02 19:46:28 +01:00
2020-12-02 18:51:52 +01:00
* Development
2020-12-02 23:28:57 +01:00
This comes with a self-contained redo toolchain to help in working with the
flake. It basically deploys any input flake into the =tmp= directory for easier
access.
2020-12-02 18:51:52 +01:00
2020-12-02 23:28:57 +01:00
redo targets under =tmp/= come in three kinds:
- =clean= :: will remove all build products under =tmp/=
- =<flake>= :: will make sure a store path to =<flake>= exists and puts an
indirect root into =tmp/<flake>=.
- =<flake>.rw= :: will make sure a store path to =<flake>= exists and will copy
its contents to =tmp/.<flake>.rw= and will link to it from
=tmp/<flake>.rw=. (Rationale: On Linux, directories cannot denote reliable
targets due to their non-trivial relation to modification time.)