From e00b7c8e6bb789ba709751f87d56fac55eae67f1 Mon Sep 17 00:00:00 2001 From: Shinmera Date: Fri, 5 Sep 2014 13:15:58 +0200 Subject: [PATCH] Added binary generation tools. --- binary-lass.asd | 21 +++++++++++++++++++++ binary.lisp | 29 +++++++++++++++++++++++++++++ generate-binary.sh | 10 ++++++++++ 3 files changed, 60 insertions(+) create mode 100644 binary-lass.asd create mode 100644 binary.lisp create mode 100755 generate-binary.sh diff --git a/binary-lass.asd b/binary-lass.asd new file mode 100644 index 0000000..dc06ad3 --- /dev/null +++ b/binary-lass.asd @@ -0,0 +1,21 @@ +#| + This file is a part of LASS + (c) 2014 TymoonNET/NexT http://tymoon.eu (shinmera@tymoon.eu) + Author: Nicolas Hafner +|# + +(defpackage #:org.tymoonnext.lass.binary.asdf + (:use #:cl #:asdf)) +(in-package #:org.tymoonnext.lass.binary.asdf) + +(defsystem binary-lass + :name "LASS Binary" + :version "0.1.1" + :license "Artistic" + :author "Nicolas Hafner " + :maintainer "Nicolas Hafner " + :description "System to create a binary executable for LASS." + :homepage "https://github.com/Shinmera/LASS" + :serial T + :components ((:file "binary")) + :depends-on (:lass)) diff --git a/binary.lisp b/binary.lisp new file mode 100644 index 0000000..fafd922 --- /dev/null +++ b/binary.lisp @@ -0,0 +1,29 @@ +#| + This file is a part of LASS + (c) 2014 TymoonNET/NexT http://tymoon.eu (shinmera@tymoon.eu) + Author: Nicolas Hafner +|# + +(defpackage #:binary-lass + (:nicknames #:org.tymoonnext.lass.bianry) + (:use #:cl) + (:export + #:main + #:cmd-wrapper)) +(in-package #:binary-lass) + +(defun main (&optional in out (pretty "false")) + (if in + (let* ((in (uiop:parse-native-namestring in)) + (out (or (when out (uiop:parse-native-namestring out)) + (merge-pathnames (make-pathname :type "css") in))) + (pretty (or (string-equal pretty "true") + (string-equal pretty "T")))) + (lass:generate in :out out :pretty pretty) + (uiop:native-namestring out)) + (format T "Usage: lass LASS-FILE [ OUTPUT-CSS-FILE [ PRETTY-PRINTING ] ] ~%~%LASS v~a ~a~%" + (asdf:component-version (asdf:find-system :LASS)) + (asdf:system-homepage (asdf:find-system :LASS))))) + +(defun cmd-wrapper (args) + (apply #'main (cddr args))) diff --git a/generate-binary.sh b/generate-binary.sh new file mode 100755 index 0000000..fd25338 --- /dev/null +++ b/generate-binary.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +readonly BUILDAPP=/usr/bin/buildapp +readonly SOURCE_TREE=~/quicklisp/local-projects/ + +$BUILDAPP --output lass \ + --entry "BINARY-LASS:CMD-WRAPPER" \ + --load-system "binary-lass" \ + --asdf-tree $SOURCE_TREE \ + --compress-core