Commit f186ae79490a863c5a52dda61c76c1d53a5b87ab

Thomas de Grivel 2017-03-05T12:17:58

Call less by command line.

diff --git a/less.lisp b/less.lisp
index a4f5e78..8bc617d 100644
--- a/less.lisp
+++ b/less.lisp
@@ -23,15 +23,28 @@
 (defmethod json:encode-json ((object pathname) &optional stream)
   (json:encode-json (namestring object) stream))
 
-(defun less (src-path parser-options css-options &optional out)
+(defun less-js (src-path options &optional out)
   (let ((opt (json:make-object `((src . ,src-path)
-				 (parser . ,(plist-alist parser-options))
-				 (css . ,(plist-alist css-options)))
+				 (parser . ,(plist-alist options)))
 			       nil)))
     (with-input-from-string (in (json:encode-json-to-string opt))
       (exec-js:from-file #P"lib/rol/assets/less.js"
 			 :safely nil :in in :out out))))
 
+(defun less-path (path)
+  (format nil "--include-path=~{~A~^:~}" path))
+
+(defun less (src-path &key clean path out)
+  (let ((args ()))
+    (when out
+      (push out args))
+    (push src-path args)
+    (when clean
+      (push "--clean-css" args))
+    (when path
+      (push (less-path path) args))
+      (external-program:run "lessc" args :output out)))
+			
 ;;  LESS
 
 (defclass less-asset (css-asset)
@@ -114,7 +127,7 @@
 			    (mapcar #'truename (assets-dirs))))
 	(path (truename (asset-source-path asset))))
     (less path
-	  (list :paths true-assets-dirs	:filename path)
-	  (list :yuicompress (not (debug-p (or :css :less :assets))))
-	  output))
+	  :clean (not (debug-p (or :css :less :assets)))
+	  :path true-assets-dirs
+	  :out output))
   (values))