about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/package-management/home-manager/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/package-management/home-manager/default.nix39
1 files changed, 27 insertions, 12 deletions
diff --git a/nixpkgs/pkgs/tools/package-management/home-manager/default.nix b/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
index db60d5e8429e..e6c596c07145 100644
--- a/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
@@ -1,18 +1,18 @@
 #Adapted from
 #https://github.com/rycee/home-manager/blob/2c07829be2bcae55e04997b19719ff902a44016d/home-manager/default.nix
 
-{ bash, coreutils, findutils, gnused, less, lib, stdenv, makeWrapper, fetchFromGitHub }:
+{ bash, coreutils, findutils, gnused, less, gettext, nixos-option, lib, stdenv, makeWrapper, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
 
   pname = "home-manager";
-  version = "2021-03-21";
+  version = "2021-12-25";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "home-manager";
-    rev = "ddcd476603dfd3388b1dc8234fa9d550156a51f5";
-    sha256 = "sha256-E6ABXtzw6bHmrIirB1sJL6S2MEa3sfcvRLzRa92frCo=";
+    rev = "48f2b381dd397ec88040d3354ac9c036739ba139";
+    sha256 = "1i9v94brh9vhyhzcqyfj64nzhaibdj0sw74pxgk4bcsp0hqawgcd";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -23,14 +23,29 @@ stdenv.mkDerivation rec {
 
     substituteInPlace $out/bin/home-manager \
       --subst-var-by bash "${bash}" \
-      --subst-var-by coreutils "${coreutils}" \
-      --subst-var-by findutils "${findutils}" \
-      --subst-var-by gnused "${gnused}" \
-      --subst-var-by less "${less}" \
-      --subst-var-by HOME_MANAGER_PATH '${src}'
-
-    install -D -m755 home-manager/completion.bash \
-      "$out/share/bash-completion/completions/home-manager"
+      --subst-var-by DEP_PATH "${
+        lib.makeBinPath [ coreutils findutils gettext gnused less nixos-option ]
+      }" \
+      --subst-var-by HOME_MANAGER_LIB '${src}/lib/bash/home-manager.sh' \
+      --subst-var-by HOME_MANAGER_PATH '${src}' \
+      --subst-var-by OUT "$out"
+
+    install -D -m755 ${src}/home-manager/completion.bash \
+      $out/share/bash-completion/completions/home-manager
+    install -D -m755 ${src}/home-manager/completion.zsh \
+      $out/share/zsh/site-functions/_home-manager
+    install -D -m755 ${src}/home-manager/completion.fish \
+      $out/share/fish/vendor_completions.d/home-manager.fish
+
+    install -D -m755 ${src}/lib/bash/home-manager.sh \
+      "$out/share/bash/home-manager.sh"
+
+    for path in ${src}/home-manager/po/*.po; do
+      lang="''${path##*/}"
+      lang="''${lang%%.*}"
+      mkdir -p "$out/share/locale/$lang/LC_MESSAGES"
+      ${gettext}/bin/msgfmt -o "$out/share/locale/$lang/LC_MESSAGES/home-manager.mo" "$path"
+    done
   '';
 
   meta = with lib; {