aboutsummaryrefslogtreecommitdiff
path: root/home-manager
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2017-11-24 12:31:08 +0100
committerRobert Helgesson <robert@rycee.net>2017-11-29 23:48:58 +0100
commit06d4f39e7b42fd601eae247e458ac82fece349d0 (patch)
tree9eaf6ae4b1a2017c1fb5bff12eec0b07a2f79684 /home-manager
parenta1e36a9a37fa1abc28cf66b55635a6b4ff0dc8e2 (diff)
home-manager: use `shellHook` to install
This changes the installation command from nix-shell $HM_PATH -A install --run 'home-manager switch' to nix-shell $HM_PATH -A install The added shell hook will print some useful information and run `home-manager switch`.
Diffstat (limited to 'home-manager')
-rw-r--r--home-manager/install.nix37
1 files changed, 37 insertions, 0 deletions
diff --git a/home-manager/install.nix b/home-manager/install.nix
new file mode 100644
index 00000000000..c6d3aa4e4ca
--- /dev/null
+++ b/home-manager/install.nix
@@ -0,0 +1,37 @@
+{ home-manager, pkgs }:
+
+pkgs.runCommand
+ "home-manager-install"
+ {
+ propagatedBuildInputs = [ home-manager ];
+ shellHook = ''
+ echo
+ echo "Creating initial Home Manager generation..."
+ echo
+
+ if home-manager switch; then
+ cat <<EOF
+
+ All done! The home-manager tool should now be installed and you
+ can edit
+
+ ''${XDG_CONFIG_HOME:-~/.config}/nixpkgs/home.nix
+
+ to configure Home Manager. Run 'man home-configuration.nix' to
+ see all available options.
+ EOF
+ exit 0
+ else
+ cat <<EOF
+
+ Uh oh, the installation failed! Please create an issue at
+
+ https://github.com/rycee/home-manager/issues
+
+ if the error seems to be the fault of Home Manager.
+ EOF
+ exit 1
+ fi
+ '';
+ }
+ ""