Add mime type module and refactor options

This commit is contained in:
DashieTM 2024-09-09 23:11:36 +02:00
parent 3a2266d44f
commit 69fb898087
25 changed files with 641 additions and 478 deletions

View file

@ -1,8 +1,12 @@
# with friendly help by stylix: https://github.com/danth/stylix/blob/master/docs/default.nix
{ pkgs, build_systems, lib, ... }:
{
pkgs,
build_systems,
lib,
...
}:
let
makeOptionsDoc = configuration:
pkgs.nixosOptionsDoc { options = configuration; };
makeOptionsDoc = configuration: pkgs.nixosOptionsDoc { options = configuration; };
generateDocs = obj: ''
touch src/${obj.fst}.md
sed '/*Declared by:*/,/^$/d' <${obj.snd.optionsCommonMark} >> src/${obj.fst}.md
@ -11,18 +15,17 @@ let
echo "- [${name}](${name}.md)" >> src/SUMMARY.md
'';
system = (build_systems ../example/.)."example".options;
makeOptionsDocPrograms = name:
pkgs.nixosOptionsDoc { options = system.mods.${name}; };
makeOptionsDocPrograms = name: pkgs.nixosOptionsDoc { options = system.mods.${name}; };
conf = makeOptionsDoc system.conf;
paths = builtins.readDir ../modules/programs;
names = lib.lists.remove "default"
(map (name: lib.strings.removeSuffix ".nix" name)
(lib.attrsets.mapAttrsToList (name: _: name) paths));
names = lib.lists.remove "default" (
map (name: lib.strings.removeSuffix ".nix" name) (lib.attrsets.mapAttrsToList (name: _: name) paths)
);
mods = map makeOptionsDocPrograms names;
docs =
lib.strings.concatLines (map generateDocs (lib.lists.zipLists names mods));
docs = lib.strings.concatLines (map generateDocs (lib.lists.zipLists names mods));
summary = lib.strings.concatStringsSep " " (map summaryAppend names);
in pkgs.stdenvNoCC.mkDerivation {
in
pkgs.stdenvNoCC.mkDerivation {
name = "dashNix-book";
src = ./.;

View file

@ -198,4 +198,6 @@ For package lists, please check the individual modules, as the lists can be long
- fish: Enables and configures fish shell
- kitty: Enables and configures kitty terminal
- oxi: My own programs, can be selectively disabled, or as a whole
- mime: Mime type configuration
- xkb: Keyboard layout configuration
- scripts: Various preconfigured scripts with the ability to add more