Add some extra commands
This allows me to publish articles more easily.
This commit is contained in:
parent
a134eef988
commit
e616e0a2d7
1 changed files with 32 additions and 0 deletions
|
@ -230,5 +230,37 @@
|
||||||
(eltuki-commit)
|
(eltuki-commit)
|
||||||
(kill-buffer buffer)))
|
(kill-buffer buffer)))
|
||||||
|
|
||||||
|
(defun eltuki-process-sentinel (proc status)
|
||||||
|
"Print PROC's STATUS."
|
||||||
|
(message "git %s" (substring status 0 -1)))
|
||||||
|
|
||||||
|
(defun eltuki--passwd-prompt (string)
|
||||||
|
"Decide on what to prompt based on STRING."
|
||||||
|
(cond
|
||||||
|
((or
|
||||||
|
(string-match "^Enter passphrase for key '\\\(.*\\\)': $" string)
|
||||||
|
(string-match "^\\\(.*\\\)'s password:" string))
|
||||||
|
(format "Password for '%s': " (match-string 1 string)))
|
||||||
|
((string-match "^[pP]assword:" string)
|
||||||
|
"Password:")))
|
||||||
|
|
||||||
|
(defun eltuki-process-filter (proc string)
|
||||||
|
"Check if PROC is asking for a password in STRING."
|
||||||
|
(with-current-buffer (process-buffer proc)
|
||||||
|
(let ((inhibit-read-only t)
|
||||||
|
(ask (eltuki--passwd-prompt string)))
|
||||||
|
(if ask
|
||||||
|
(process-send-string proc (concat (read-passwd ask nil) "\n"))
|
||||||
|
(insert string)))))
|
||||||
|
|
||||||
|
(defun eltuki-publish ()
|
||||||
|
"Publish posts."
|
||||||
|
(interactive)
|
||||||
|
(let* ((default-directory (concat eltuki-blog-dir "/"))
|
||||||
|
(proc (start-process "eltuki-publish" "*eltuki-publish*"
|
||||||
|
"git" "push")))
|
||||||
|
(set-process-sentinel proc 'eltuki-process-sentinel)
|
||||||
|
(set-process-filter proc 'eltuki-process-filter)))
|
||||||
|
|
||||||
(provide 'eltuki)
|
(provide 'eltuki)
|
||||||
;;; eltuki.el ends here
|
;;; eltuki.el ends here
|
||||||
|
|
Loading…
Reference in a new issue