diff options
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/nix-mode-20180822.214/nix-log.el')
-rw-r--r-- | configs/shared/emacs/.emacs.d/elpa/nix-mode-20180822.214/nix-log.el | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/nix-mode-20180822.214/nix-log.el b/configs/shared/emacs/.emacs.d/elpa/nix-mode-20180822.214/nix-log.el new file mode 100644 index 000000000000..192ab3170e87 --- /dev/null +++ b/configs/shared/emacs/.emacs.d/elpa/nix-mode-20180822.214/nix-log.el @@ -0,0 +1,36 @@ +;;; nix-log.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 'nix-search) +(require 'nix-instantiate) + +(defun nix-log (file attr) + "Open the nix log. +FILE nix file to parse. +ATTR attribute to load the log of." + (interactive (list (nix-read-file) nil)) + (unless attr (setq attr (nix-read-attr file))) + + (let* ((drv-file (nix-instantiate file attr)) + (drv-name (progn + (string-match (format "^%s/\\(.*\\)$" nix-store-dir) drv-file) + (match-string 1 drv-file))) + (log-file (format "%s/log/nix/drvs/%s/%s.bz2" + nix-state-dir + (substring drv-name 0 2) drv-name))) + (if (file-exists-p log-file) + (find-file log-file) + (error "No log is available for derivation")))) + +(provide 'nix-log) +;;; nix-log.el ends here |