Recently Written · git

coleslaw

Emacs mode for the "Coleslaw" site generator written in Common Lisp.

git clone https://github.com/equwal/coleslaw

Log | Files | Refs


plugins/versioned.lisp (823 bytes)

1 (defpackage :coleslaw-versioned
2   (:use :cl)
3   (:import-from :coleslaw #:*config*
4                           #:deploy-dir
5                           #:rel-path
6                           #:run-program
7                           #:update-symlink))
8 
9 (in-package :coleslaw-versioned)
10 
11 (defmethod coleslaw:deploy (staging)
12   (let* ((dest (deploy-dir *config*))
13          (new-build (rel-path dest "generated/~a" (get-universal-time)))
14          (prev (rel-path dest ".prev"))
15          (curr (rel-path dest ".curr")))
16     (ensure-directories-exist new-build)
17     (run-program "mv ~a ~a" staging new-build)
18     (when (and (probe-file prev) (truename prev))
19       (run-program "rm -r ~a" (truename prev)))
20     (when (probe-file curr)
21       (update-symlink prev (truename curr)))
22     (update-symlink curr new-build)))
23 
24 (defun enable ())