diff options
author | Travis A. Everett <travis.a.everett@gmail.com> | 2022-06-01 09:41:00 -0500 |
---|---|---|
committer | Travis A. Everett <travis.a.everett@gmail.com> | 2022-06-01 09:41:00 -0500 |
commit | 505d6ee5e21654747c52e0877bf1d5982e8e9d31 (patch) | |
tree | 20afd7fe1231005dfa0afef68b5d8a1b1671d43a /scripts | |
parent | 078c80f7500edd3adc3be5f7fb2801ba346c1d81 (diff) |
darwin-install: work around existing vim swapfiles
User on Matrix reported install problems which presented as
"vifs:editing error" which we traced back to vim griping about an
existing swap file. When opened interactively, it did this:
E325: ATTENTION
Found a swap file by the name "/etc/.fstab.swp"
owned by: root dated: Sön Apr 24 16:54:10 2022
file name: /private/etc/fstab
modified: YES
user name: root host name: MBP.local
process ID: 1698
While opening file "/etc/fstab"
dated: Sön Apr 24 16:56:27 2022
NEWER than swap file!
...
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/create-darwin-volume.sh | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/scripts/create-darwin-volume.sh b/scripts/create-darwin-volume.sh index aee7ff4bf..103e1e391 100755 --- a/scripts/create-darwin-volume.sh +++ b/scripts/create-darwin-volume.sh @@ -442,8 +442,9 @@ add_nix_vol_fstab_line() { local escaped_mountpoint="${NIX_ROOT/ /'\\\'040}" shift - # wrap `ex` to work around a problem with vim plugins breaking exit codes - # (see github.com/NixOS/nix/issues/5468) + # wrap `ex` to work around problems w/ vim features breaking exit codes + # - plugins (see github.com/NixOS/nix/issues/5468): -u NONE + # - swap file: -n # # the first draft used `--noplugin`, but github.com/NixOS/nix/issues/6462 # suggests we need the less-semantic `-u NONE` @@ -456,7 +457,7 @@ add_nix_vol_fstab_line() { # minver 10.12.6 seems to have released with vim 7.4 cat > "$SCRATCH/ex_cleanroom_wrapper" <<EOF #!/bin/sh -/usr/bin/ex -u NONE "\$@" +/usr/bin/ex -u NONE -n "\$@" EOF chmod 755 "$SCRATCH/ex_cleanroom_wrapper" @@ -650,9 +651,9 @@ EOF task "Configuring /etc/synthetic.conf to make a mount-point at $NIX_ROOT" >&2 # technically /etc/synthetic.d/nix is supported in Big Sur+ # but handling both takes even more code... - # Note: `-u NONE` disables vim plugins/rc; see note on --clean earlier + # See earlier note; `-u NONE` disables vim plugins/rc, `-n` skips swapfile _sudo "to add Nix to /etc/synthetic.conf" \ - /usr/bin/ex -u NONE /etc/synthetic.conf <<EOF + /usr/bin/ex -u NONE -n /etc/synthetic.conf <<EOF :a ${NIX_ROOT:1} . @@ -820,8 +821,8 @@ setup_volume_daemon() { local volume_uuid="$2" if ! test_voldaemon; then task "Configuring LaunchDaemon to mount '$NIX_VOLUME_LABEL'" >&2 - # Note: `-u NONE` disables vim plugins/rc; see note on --clean earlier - _sudo "to install the Nix volume mounter" /usr/bin/ex -u NONE "$NIX_VOLUME_MOUNTD_DEST" <<EOF + # See earlier note; `-u NONE` disables vim plugins/rc, `-n` skips swapfile + _sudo "to install the Nix volume mounter" /usr/bin/ex -u NONE -n "$NIX_VOLUME_MOUNTD_DEST" <<EOF :a $(generate_mount_daemon "$cmd_type" "$volume_uuid") . |