
* Deploy :after plugins probably need revision now, and coleslaw-heroku. * README, HACKING need updates. Plugin-api.md too. * NEWS needs a carefully worded entry. Is that what we want?
22 lines
802 B
Common Lisp
22 lines
802 B
Common Lisp
(defpackage :coleslaw-git-hook
|
|
(:use :cl)
|
|
(:import-from :coleslaw #:*config*
|
|
#:deploy-dir
|
|
#:rel-path
|
|
#:run-program
|
|
#:update-symlink))
|
|
|
|
(in-package :coleslaw-git-hook)
|
|
|
|
(defmethod coleslaw:deploy (staging)
|
|
(let* ((dest (deploy-dir *config*))
|
|
(new-build (rel-path dest "generated/~a" (get-universal-time)))
|
|
(prev (rel-path dest ".prev"))
|
|
(curr (rel-path dest ".curr")))
|
|
(ensure-directories-exist new-build)
|
|
(run-program "mv ~a ~a" staging new-build)
|
|
(when (and (probe-file prev) (truename prev))
|
|
(run-program "rm -r ~a" (truename prev)))
|
|
(when (probe-file curr)
|
|
(update-symlink prev (truename curr)))
|
|
(update-symlink curr new-build)))
|