From d5596d5df2fa66f4c1ccdc62b405e14173f22e6f Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Sun, 21 May 2017 10:51:01 +0200 Subject: [PATCH] programs-info: add module and run install-info on system packages. Fixes #25 --- default.nix | 1 + modules/environment/default.nix | 9 ++++++-- modules/programs/info/default.nix | 35 +++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 modules/programs/info/default.nix diff --git a/default.nix b/default.nix index b8d8bc02..89fc1035 100644 --- a/default.nix +++ b/default.nix @@ -47,6 +47,7 @@ let ./modules/programs/bash.nix ./modules/programs/fish.nix ./modules/programs/man.nix + ./modules/programs/info ./modules/programs/nix-script.nix ./modules/programs/tmux.nix ./modules/programs/vim.nix diff --git a/modules/environment/default.nix b/modules/environment/default.nix index 492ff0ad..5ea2e08d 100644 --- a/modules/environment/default.nix +++ b/modules/environment/default.nix @@ -43,6 +43,12 @@ in { description = "A list of profiles used to setup the global environment."; }; + environment.postBuild = mkOption { + type = types.lines; + default = ""; + description = "Commands to execute when building the global environment."; + }; + environment.extraOutputsToInstall = mkOption { type = types.listOf types.str; default = []; @@ -125,7 +131,6 @@ in { environment.pathsToLink = [ "/bin" "/lib" - "/share/info" "/share/locale" ]; @@ -146,7 +151,7 @@ in { system.path = pkgs.buildEnv { name = "system-path"; paths = cfg.systemPackages; - inherit (cfg) pathsToLink extraOutputsToInstall; + inherit (cfg) postBuild pathsToLink extraOutputsToInstall; }; system.build.setEnvironment = concatStringsSep "\n" exportVariables; diff --git a/modules/programs/info/default.nix b/modules/programs/info/default.nix new file mode 100644 index 00000000..de4baa45 --- /dev/null +++ b/modules/programs/info/default.nix @@ -0,0 +1,35 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.info; +in + +{ + options = { + programs.info.enable = mkOption { + type = types.bool; + default = true; + description = "Whether to enable info pages and the info command."; + }; + }; + + config = mkIf cfg.enable { + + environment.systemPackages = [ pkgs.texinfoInteractive ]; + + environment.pathsToLink = [ "/info" "/share/info" ]; + environment.extraOutputsToInstall = [ "info" ]; + + environment.postBuild = '' + if test -w $out/share/info; then + shopt -s nullglob + for i in $out/share/info/*.info $out/share/info/*.info.gz; do + ${pkgs.texinfoInteractive}/bin/install-info $i $out/share/info/dir + done + fi + ''; + + }; +}