diff --git a/lib/myutils.nix b/lib/myutils.nix new file mode 100644 index 0000000..47f837a --- /dev/null +++ b/lib/myutils.nix @@ -0,0 +1,16 @@ +{ lib, pkgs, ... }: + +let + stripTabs = text: let + # Whether all lines start with a tab (or is empty) + shouldStripTab = lines: builtins.all (line: (line == "") || (pkgs.lib.strings.hasPrefix " " line)) lines; + # Strip a leading tab from all lines + stripTab = lines: builtins.map (line: pkgs.lib.strings.removePrefix " " line) lines; + # Strip tabs recursively until there are none + stripTabs = lines: if (shouldStripTab lines) then (stripTabs (stripTab lines)) else lines; + in + # Split into lines. Strip leading tabs. Concat back to string. + builtins.concatStringsSep "\n" (stripTabs (pkgs.lib.strings.splitString "\n" text)); +in { + stripTabs = stripTabs; +} diff --git a/modules/system/base.nix b/modules/system/base.nix index dbee641..244991d 100644 --- a/modules/system/base.nix +++ b/modules/system/base.nix @@ -1,6 +1,9 @@ { config, configFiles, lib, pkgs, ... }: { + # Add my custom utilities + _module.args.myutils = import ../../lib/myutils.nix { lib = lib; pkgs = pkgs; }; + boot.tmp.cleanOnBoot = true; environment.systemPackages = map lib.lowPrio [ pkgs.curl