Emacs wrapper: extract duplicated wrapProgram call

Additional refactors made:

* eliminated the quirky $out/bin/$(basename $prog) path calculation as
  it equals to $prog anyway (I have no idea why was it that way...)
* Removed the platform dependent optionalString call as there is an
  additional runtime check anyway for the existence of Applications
  directory.

Referecnes: #100
This commit is contained in:
László Vaskó
2020-12-04 20:46:26 +00:00
parent 4cd7e15082
commit f9286c8c56

View File

@@ -222,20 +222,20 @@ let
in in
emacs.overrideAttrs (esuper: emacs.overrideAttrs (esuper:
let cmd = '' let cmd = ''
wrapEmacs() {
wrapProgram $1 \
--set DOOMDIR ${doomDir} \
--set __DEBUG_doom_emacs_DIR ${doom-emacs} \
--set __DEBUG_doomLocal_DIR ${doomLocal}
}
for prog in $out/bin/*; do for prog in $out/bin/*; do
wrapProgram $out/bin/$(basename $prog) \ wrapEmacs $prog
--set DOOMDIR ${doomDir} \
--set __DEBUG_doom_emacs_DIR ${doom-emacs} \
--set __DEBUG_doomLocal_DIR ${doomLocal}
done done
${lib.optionalString stdenv.isDarwin ''
if [[ -e $out/Applications ]]; then if [[ -e $out/Applications ]]; then
wrapProgram "$out/Applications/Emacs.app/Contents/MacOS/Emacs" \ wrapEmacs "$out/Applications/Emacs.app/Contents/MacOS/Emacs"
--set DOOMDIR ${doomDir} \
--set __DEBUG_doom_emacs_DIR ${doom-emacs} \
--set __DEBUG_doomLocal_DIR ${doomLocal}
fi fi
''}
# emacsWithPackages assumes share/emacs/site-lisp/subdirs.el # emacsWithPackages assumes share/emacs/site-lisp/subdirs.el
# exists, but doesn't pass it along. When home-manager calls # exists, but doesn't pass it along. When home-manager calls
# emacsWithPackages again on this derivation, it fails due to # emacsWithPackages again on this derivation, it fails due to