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`.
wip/yesman
Robert Helgesson 7 years ago
parent a1e36a9a37
commit 06d4f39e7b
No known key found for this signature in database
GPG Key ID: C3DB11069E65DC86
  1. 4
      README.md
  2. 8
      default.nix
  3. 37
      home-manager/install.nix

@ -80,10 +80,10 @@ Currently the easiest way to install Home Manager is as follows:
EOF
```
4. Create the first Home Manager generation:
4. Install Home Manager and create the first Home Manager generation:
```console
$ nix-shell $HM_PATH -A install --run 'home-manager switch'
$ nix-shell $HM_PATH -A install
```
Home Manager should now be active and available in your user

@ -6,9 +6,7 @@ rec {
path = toString ./.;
};
install =
pkgs.runCommand
"home-manager-install"
{ propagatedBuildInputs = [ home-manager ]; }
"";
install = import ./home-manager/install.nix {
inherit home-manager pkgs;
};
}

@ -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
'';
}
""
Loading…
Cancel
Save