Build either emacs.{glinux,nixos} depending on my current device

`M-x nix/rebuild-emacs` will build either emacs.glinux or emacs.nixos depending
on whether I'm using a work device or a personal device.
This commit is contained in:
William Carroll 2020-04-02 14:50:53 +01:00
parent 86da482fbf
commit d12b8b3dcb

View file

@ -8,6 +8,8 @@
;; Dependencies
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'device)
;; TODO: These may fail at startup. How can I make sure that the .envrc is
;; consulted when Emacs starts?
(prelude/assert (f-exists? (getenv "BRIEFCASE")))
@ -24,13 +26,16 @@
(defun nix/rebuild-emacs ()
"Use nix-env to rebuild wpcarros-emacs."
(interactive)
(start-process "nix-build/<briefcase/emacs>" "*nix-build/<briefcase/emacs>*"
"nix-env"
"-I" (format "nixpkgs=%s" (f-expand "~/nixpkgs"))
"-I" (format "depot=%s" (f-expand "~/depot"))
"-I" (format "briefcase=%s" (f-expand "~/briefcase"))
"-f" "<briefcase>" "-iA" "emacs")
(display-buffer "*nix-build/<briefcase/emacs>*"))
(let* ((emacs (if (device/corporate?) "emacs.glinux" "emacs.nixos"))
(pname (format "nix-build <briefcase/%s>" emacs))
(bname (format "*%s*" pname)))
(start-process pname bname
"nix-env"
"-I" (format "nixpkgs=%s" (f-expand "~/nixpkgs"))
"-I" (format "depot=%s" (f-expand "~/depot"))
"-I" (format "briefcase=%s" (f-expand "~/briefcase"))
"-f" "<briefcase>" "-iA" emacs)
(display-buffer bname)))
(defun nix/home-manager-switch ()
"Use Nix to reconfigure the user environment."