diff options
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/nix-mode-20180908.2240/nix-instantiate.el')
-rw-r--r-- | configs/shared/emacs/.emacs.d/elpa/nix-mode-20180908.2240/nix-instantiate.el | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/nix-mode-20180908.2240/nix-instantiate.el b/configs/shared/emacs/.emacs.d/elpa/nix-mode-20180908.2240/nix-instantiate.el deleted file mode 100644 index 899ec9790b79..000000000000 --- a/configs/shared/emacs/.emacs.d/elpa/nix-mode-20180908.2240/nix-instantiate.el +++ /dev/null @@ -1,104 +0,0 @@ -;;; nix-instantiate.el -- run nix commands in Emacs -*- lexical-binding: t -*- - -;; Author: Matthew Bauer <mjbauer95@gmail.com> -;; Homepage: https://github.com/NixOS/nix-mode -;; Keywords: nix - -;; This file is NOT part of GNU Emacs. - -;;; Commentary: - -;;; Code: - -(require 'nix) -(require 'json) - -(defun nix-instantiate--parsed (drv) - "Get the parsed version of the .drv file. -DRV file to load from." - (let ((stdout (generate-new-buffer "nix show-derivation")) - result) - (call-process nix-executable nil (list stdout nil) nil - "show-derivation" drv) - (setq result - (cdar (with-current-buffer stdout - (when (eq (buffer-size) 0) - (error "Nix’s show-derivation %s failed to produce any output" - drv)) - (goto-char (point-min)) - (json-read)))) - (kill-buffer stdout) - result)) - -(defun nix-instantiate (nix-file &optional attribute parse) - "Run nix-instantiate on a Nix expression. -NIX-FILE the file to instantiate. -ATTRIBUTE an attribute of the Nix file to use. -PARSE whether to parse nix-instantiate output." - (interactive (list (read-file-name "Nix file: ") nil t)) - - (let ((stdout (generate-new-buffer "nix-instantiate")) - result) - (if attribute - (call-process nix-instantiate-executable nil (list stdout nil) nil - nix-file "-A" attribute) - (call-process nix-instantiate-executable nil (list stdout nil) nil - nix-file)) - (with-current-buffer stdout - (when (eq (buffer-size) 0) - (error - "Error: nix-instantiate %s failed to produce any output" - nix-file)) - (setq result (substring (buffer-string) 0 (- (buffer-size) 1))) - (when parse - (setq result (nix-instantiate--parsed result)))) - (kill-buffer stdout) - result)) - -(defvar nix-instantiate--running-processes nil) - -(defun nix-instantiate--sentinel (prop err proc event) - "Make a nix-instantiate process. -PROP the prop name of nix-instantiate--running-processes. -ERR the error buffer. -PROC the process that has been run. -EVENT the event that was fired." - (when (string= event "finished\n") - (with-current-buffer (process-buffer proc) - (unless (eq (buffer-size) 0) - (let ((drv (nix-instantiate--parsed - (substring (buffer-string) 0 (- (buffer-size) 1))))) - (dolist - (callback (lax-plist-get nix-instantiate--running-processes prop)) - (funcall callback drv))))) - (setq nix-instantiate--running-processes - (lax-plist-put nix-instantiate--running-processes prop nil))) - (unless (process-live-p proc) - (kill-buffer (process-buffer proc)) - (kill-buffer err))) - -(defun nix-instantiate-async (callback nix-file &optional attribute) - "Run nix-instantiate on a Nix expression, asynchronously. -CALLBACK the function to call when instantiate completes. -NIX-FILE the file to instantiate -ATTRIBUTE an attribute of the Nix file to use." - (setq nix-file (expand-file-name nix-file)) - (let* ((prop (if attribute - (expand-file-name attribute nix-file) nix-file)) - (data (lax-plist-get nix-instantiate--running-processes prop)) - (stdout (generate-new-buffer "nix-instantiate")) - (stderr (generate-new-buffer "nix-instantiate error"))) - (setq nix-instantiate--running-processes - (lax-plist-put nix-instantiate--running-processes - prop (cons callback data))) - (make-process - :name "nix-instantiate" - :buffer stdout - :command (append (list nix-instantiate-executable nix-file) - (when attribute (list "-A" attribute))) - :noquery t - :sentinel (apply-partially 'nix-instantiate--sentinel prop stderr) - :stderr stderr))) - -(provide 'nix-instantiate) -;;; nix-instantiate.el ends here |