Reshuffling stuff
This commit is contained in:
+6
-21
@@ -766,27 +766,20 @@ This is top file of this level which contains just an import statement for all r
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** =generated/modules/apps/packages.nix=
|
** =generated/modules/apps/packages.nix=
|
||||||
This will import all packages listed in ./assets/system/apps/packlages.conf
|
This will import all packages listed in ./assets/system/apps/packages.conf
|
||||||
#+BEGIN_SRC nix :tangle generated/modules/apps/packages.nix :noweb tangle :mkdirp yes :eval never-html
|
#+BEGIN_SRC nix :tangle generated/modules/apps/packages.nix :noweb tangle :mkdirp yes :eval never-html
|
||||||
{ config, lib, pkgs, flakeRoot, inputs, ... }:
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
# --- Path to your packages.conf ---
|
# Gebruik een relatief pad, geen flakeRoot
|
||||||
packagesConfPath = "${flakeRoot}/assets/conf/apps/packages.conf";
|
packagesConfPath = ./assets/system/apps/packages.conf;
|
||||||
|
|
||||||
# --- Read raw content ---
|
|
||||||
raw = builtins.readFile packagesConfPath;
|
raw = builtins.readFile packagesConfPath;
|
||||||
|
|
||||||
# --- Split into lines explicitly on "\n" to avoid accidental char splitting ---
|
|
||||||
rawLines = lib.splitString "\n" raw;
|
rawLines = lib.splitString "\n" raw;
|
||||||
|
|
||||||
# --- Guard against accidental character splitting ---
|
_guard = assert !(builtins.stringLength raw > 1 &&
|
||||||
_guard = assert !(
|
builtins.length rawLines == builtins.stringLength raw); true;
|
||||||
builtins.stringLength raw > 1 &&
|
|
||||||
builtins.length rawLines == builtins.stringLength raw
|
|
||||||
); true;
|
|
||||||
|
|
||||||
# --- Clean each line: remove CR, inline comments, trim ---
|
|
||||||
cleanLine = line:
|
cleanLine = line:
|
||||||
let
|
let
|
||||||
noCR = lib.replaceStrings [ "\r" ] [ "" ] line;
|
noCR = lib.replaceStrings [ "\r" ] [ "" ] line;
|
||||||
@@ -794,10 +787,8 @@ let
|
|||||||
in
|
in
|
||||||
lib.strings.trim noComment;
|
lib.strings.trim noComment;
|
||||||
|
|
||||||
# --- Filter empty lines ---
|
|
||||||
entries = builtins.filter (l: l != "") (map cleanLine rawLines);
|
entries = builtins.filter (l: l != "") (map cleanLine rawLines);
|
||||||
|
|
||||||
# --- Resolve a package name from pkgs ---
|
|
||||||
resolvePkg = name:
|
resolvePkg = name:
|
||||||
let
|
let
|
||||||
parts = lib.splitString "." name;
|
parts = lib.splitString "." name;
|
||||||
@@ -813,16 +804,10 @@ let
|
|||||||
else
|
else
|
||||||
found;
|
found;
|
||||||
|
|
||||||
# --- Map entries to actual pkgs ---
|
|
||||||
packages = builtins.seq _guard (map resolvePkg entries);
|
packages = builtins.seq _guard (map resolvePkg entries);
|
||||||
|
|
||||||
# --- Zen Browser package from inputs ---
|
|
||||||
zenBrowser =
|
|
||||||
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# --- Add the packages to systemPackages ---
|
|
||||||
environment.systemPackages = packages ++ [ zenBrowser ];
|
environment.systemPackages = packages ++ [ zenBrowser ];
|
||||||
}
|
}
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|||||||
@@ -1,22 +1,15 @@
|
|||||||
{ config, lib, pkgs, flakeRoot, inputs, ... }:
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
# --- Path to your packages.conf ---
|
# Gebruik een relatief pad, geen flakeRoot
|
||||||
packagesConfPath = "${flakeRoot}/assets/conf/apps/packages.conf";
|
packagesConfPath = ./assets/system/apps/packages.conf;
|
||||||
|
|
||||||
# --- Read raw content ---
|
|
||||||
raw = builtins.readFile packagesConfPath;
|
raw = builtins.readFile packagesConfPath;
|
||||||
|
|
||||||
# --- Split into lines explicitly on "\n" to avoid accidental char splitting ---
|
|
||||||
rawLines = lib.splitString "\n" raw;
|
rawLines = lib.splitString "\n" raw;
|
||||||
|
|
||||||
# --- Guard against accidental character splitting ---
|
_guard = assert !(builtins.stringLength raw > 1 &&
|
||||||
_guard = assert !(
|
builtins.length rawLines == builtins.stringLength raw); true;
|
||||||
builtins.stringLength raw > 1 &&
|
|
||||||
builtins.length rawLines == builtins.stringLength raw
|
|
||||||
); true;
|
|
||||||
|
|
||||||
# --- Clean each line: remove CR, inline comments, trim ---
|
|
||||||
cleanLine = line:
|
cleanLine = line:
|
||||||
let
|
let
|
||||||
noCR = lib.replaceStrings [ "\r" ] [ "" ] line;
|
noCR = lib.replaceStrings [ "\r" ] [ "" ] line;
|
||||||
@@ -24,10 +17,8 @@ let
|
|||||||
in
|
in
|
||||||
lib.strings.trim noComment;
|
lib.strings.trim noComment;
|
||||||
|
|
||||||
# --- Filter empty lines ---
|
|
||||||
entries = builtins.filter (l: l != "") (map cleanLine rawLines);
|
entries = builtins.filter (l: l != "") (map cleanLine rawLines);
|
||||||
|
|
||||||
# --- Resolve a package name from pkgs ---
|
|
||||||
resolvePkg = name:
|
resolvePkg = name:
|
||||||
let
|
let
|
||||||
parts = lib.splitString "." name;
|
parts = lib.splitString "." name;
|
||||||
@@ -43,15 +34,9 @@ let
|
|||||||
else
|
else
|
||||||
found;
|
found;
|
||||||
|
|
||||||
# --- Map entries to actual pkgs ---
|
|
||||||
packages = builtins.seq _guard (map resolvePkg entries);
|
packages = builtins.seq _guard (map resolvePkg entries);
|
||||||
|
|
||||||
# --- Zen Browser package from inputs ---
|
|
||||||
zenBrowser =
|
|
||||||
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# --- Add the packages to systemPackages ---
|
|
||||||
environment.systemPackages = packages ++ [ zenBrowser ];
|
environment.systemPackages = packages ++ [ zenBrowser ];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user