aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2020-03-07 12:01:40 +0100
committerDaiderd Jordan <daiderd@gmail.com>2020-05-21 19:58:11 +0200
commit04f597c3f4d0ac8b8a677c798642329a5a6768e3 (patch)
tree2da9bafe7ee0479996ca1368379322c049adb894
parentcaface1980344347f2a50701ec133e98e6094c8c (diff)
install: improve output and error handling
-rw-r--r--doc/manual/installation/installing-binary.xml3
-rwxr-xr-xscripts/create-darwin-volume.sh17
-rw-r--r--scripts/install-nix-from-closure.sh7
3 files changed, 20 insertions, 7 deletions
diff --git a/doc/manual/installation/installing-binary.xml b/doc/manual/installation/installing-binary.xml
index 86cbce6bf..7f4bba3a0 100644
--- a/doc/manual/installation/installing-binary.xml
+++ b/doc/manual/installation/installing-binary.xml
@@ -199,6 +199,7 @@ nix
</screen>
<screen>
+alice$ /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -B
alice$ sudo diskutil apfs addVolume diskX APFS 'Nix Store' -mountpoint /nix
alice$ mount
/dev/disk1s6 on /nix (apfs, local, journaled)
@@ -231,7 +232,7 @@ LABEL=Nix\040Store /nix apfs rw
</para>
<screen>
-diskutil apfs enableFileVault /nix -user disk
+alice$ diskutil apfs enableFileVault /nix -user disk
</screen>
</listitem>
diff --git a/scripts/create-darwin-volume.sh b/scripts/create-darwin-volume.sh
index a1a67acea..e2b49c9a0 100755
--- a/scripts/create-darwin-volume.sh
+++ b/scripts/create-darwin-volume.sh
@@ -73,12 +73,22 @@ main() {
if ! test_synthetic_conf; then
echo "Configuring /etc/synthetic.conf..." >&2
echo nix | sudo tee /etc/synthetic.conf
- /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -B
+ if ! test_synthetic_conf; then
+ echo "error: failed to configure synthetic.conf" >&2
+ exit 1
+ fi
fi
if ! test_nix; then
echo "Creating mountpoint for /nix..." >&2
- sudo mkdir /nix
+ /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -B || true
+ if ! test_nix; then
+ sudo mkdir -p /nix 2>/dev/null || true
+ fi
+ if ! test_nix; then
+ echo "error: failed to bootstrap /nix, a reboot might be required" >&2
+ exit 1
+ fi
fi
disk=$(root_disk | disk_identifier)
@@ -97,10 +107,11 @@ main() {
printf "\$a\nLABEL=%s /nix apfs rw,nobrowse\n.\nwq\n" "$label" | EDITOR=ed sudo vifs
fi
+ echo "" >&2
echo "The following options can be enabled to disable spotlight indexing" >&2
echo "of the volume, which might be desirable." >&2
echo "" >&2
- echo " $ mdutil -i off /nix" >&2
+ echo " $ sudo mdutil -i off /nix" >&2
echo "" >&2
}
diff --git a/scripts/install-nix-from-closure.sh b/scripts/install-nix-from-closure.sh
index 7d32bf92e..2f291ed4c 100644
--- a/scripts/install-nix-from-closure.sh
+++ b/scripts/install-nix-from-closure.sh
@@ -82,7 +82,7 @@ while [ $# -gt 0 ]; do
echo " --create-volume: Create an APFS volume for the store and create the /nix"
echo " mountpoint for it using synthetic.conf."
echo " (required on macOS >=10.15)"
- echo " See https://nixos.org/nix/manual/#sect-darwin-apfs-volume"
+ echo " See https://nixos.org/nix/manual/#sect-apfs-volume-installation"
echo ""
) >&2
fi
@@ -102,10 +102,11 @@ if [ "$(uname -s)" = "Darwin" ]; then
(
echo ""
echo "Installing on macOS >=10.15 requires relocating the store to an apfs volume."
- echo "Use --create-volume or run the preparation steps manually."
- echo "See https://nixos.org/nix/manual/#sect-darwin-apfs-volume."
+ echo "Use sh <(curl https://nixos.org/nix/install) --create-volume or run the preparation steps manually."
+ echo "See https://nixos.org/nix/manual/#sect-apfs-volume-installation"
echo ""
) >&2
+ exit 1
fi
fi