about summary refs log tree commit diff
path: root/users/glittershark/emacs.d/terraform.el
blob: 6a1dc4ba47cc73d1bfba72b0af66ae8c895db3e6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
;;; ../code/depot/users/glittershark/emacs.d/terraform.el -*- lexical-binding: t; -*-

(add-hook 'terraform-mode-hook #'terraform-format-on-save-mode)

(defun packer-format-buffer ()
  (interactive)
  (let ((buf (get-buffer-create "*packer-fmt*")))
    (if (zerop (call-process "packer" nil buf nil "fmt" (buffer-file-name)))
        (revert-buffer t t t)
      (message "packer fmt failed: %s" (with-current-buffer buf (buffer-string))))))

(define-minor-mode packer-format-on-save-mode
  "Run packer-format-buffer before saving the current buffer"
  :lighter nil
  (if packer-format-on-save-mode
      (add-hook 'before-save-hook #'packer-format-buffer nil t)
    (remove-hook 'before-save-hook #'packer-format-buffer t)))

(defun maybe-init-packer ()
  (interactive)
  (when (s-ends-with-p ".pkr" (file-name-base (buffer-file-name)))
    (packer-format-on-save-mode)))

(add-hook 'hcl-mode-hook #'maybe-init-packer)