coleslaw/plugins/versioned.lisp

25 lines
823 B
Common Lisp
Raw Normal View History

2014-08-29 12:36:52 -04:00
(defpackage :coleslaw-versioned
(:use :cl)
(:import-from :coleslaw #:*config*
#:deploy-dir
#:rel-path
#:run-program
#:update-symlink))
2014-08-29 12:36:52 -04:00
(in-package :coleslaw-versioned)
(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)))
(defun enable ())