nixos/less: add configFile option
Expose the path to a lesskey file as a module option. This makes it possible to maintain a single lesskey file, used for both NixOS and non-nix systems. An example of how this can be done follows. 1. Write a derivation that fetches lesskey from a known location: { stdenv, fetchgit }: stdenv.mkDerivation { name = "foo"; src = fetchgit { .. }; phases = [ "unpackPhase" "installPhase" ]; installPhase = "mkdir -p $out && cp $src/lesskey $out/lesskey"; } 2. Set programs.less.configFile to the corresponding path: programs.less = { enable = true; configFile = "${pkgs.foo}/lesskey"; };
This commit is contained in:
parent
2b6bae5699
commit
6e4096d792
@ -6,7 +6,7 @@ let
|
|||||||
|
|
||||||
cfg = config.programs.less;
|
cfg = config.programs.less;
|
||||||
|
|
||||||
configFile = ''
|
configText = if (cfg.configFile != null) then (builtins.readFile cfg.configFile) else ''
|
||||||
#command
|
#command
|
||||||
${concatStringsSep "\n"
|
${concatStringsSep "\n"
|
||||||
(mapAttrsToList (command: action: "${command} ${action}") cfg.commands)
|
(mapAttrsToList (command: action: "${command} ${action}") cfg.commands)
|
||||||
@ -25,7 +25,7 @@ let
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
lessKey = pkgs.runCommand "lesskey"
|
lessKey = pkgs.runCommand "lesskey"
|
||||||
{ src = pkgs.writeText "lessconfig" configFile; }
|
{ src = pkgs.writeText "lessconfig" configText; }
|
||||||
"${pkgs.less}/bin/lesskey -o $out $src";
|
"${pkgs.less}/bin/lesskey -o $out $src";
|
||||||
|
|
||||||
in
|
in
|
||||||
@ -37,6 +37,19 @@ in
|
|||||||
|
|
||||||
enable = mkEnableOption "less";
|
enable = mkEnableOption "less";
|
||||||
|
|
||||||
|
configFile = mkOption {
|
||||||
|
type = types.nullOr types.path;
|
||||||
|
default = null;
|
||||||
|
example = literalExample "$${pkgs.my-configs}/lesskey";
|
||||||
|
description = ''
|
||||||
|
Path to lesskey configuration file.
|
||||||
|
|
||||||
|
<option>configFile</option> takes precedence over <option>commands</option>,
|
||||||
|
<option>clearDefaultCommands</option>, <option>lineEditingKeys</option>, and
|
||||||
|
<option>envVariables</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
commands = mkOption {
|
commands = mkOption {
|
||||||
type = types.attrsOf types.str;
|
type = types.attrsOf types.str;
|
||||||
default = {};
|
default = {};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user