Files
doomemacs/core
Henrik Lissner 9f45561825 bin/doom: inhibit POSIX errors during postscript
Some doom commands will generate a temporary script at
~/.emacs.d/.local/.doom.sh so that it can run an arbitrary shell command
after the current invocation of bin/doom ends. Very useful for, say,
restarting the currently running doom command after a destructive
operation, like updating Doom's source code, tangling your literate
config, or for launching arbitrary programs, like a new instance of
Emacs. This is necessary because elisp lacks an execv implementation.

However, for some folks, .doom.sh wasn't executing at all. This meant:

1. Some `doom upgrade`s would upgrade Doom itself but never move on to
   the second step of the process: updating its packages.
2. Literate config users could tangle their configs on `doom sync`, but
   the actual syncing process would never happen (#3746).
3. `doom run` would do nothing.

I hadn't realized /bin/sh runs bash in POSIX mode (at least, on systems
where /bin/sh = bash, like nixOS or macOS). In POSIX mode the script
will abort the if a builtin command (like export) returns a non-zero
exit code. Since .doom.sh is basically a bunch of exports followed by an
arbitrary command, and there are some environment variables
that can trigger validation errors (like UID triggering a "read-only
variable" error), we have a problem.

Hopefully addresses #3746
2020-08-18 18:59:50 -04:00
..
2020-08-17 21:24:14 -04:00
2020-05-25 16:02:07 -04:00
2020-08-08 03:06:26 -04:00
2020-08-01 15:19:59 -04:00
2020-08-07 23:44:39 -04:00