roswell/compile-parenscript.ros @ bfd9b1f910a3
Update
author |
Steve Losh <steve@stevelosh.com> |
date |
Wed, 11 Oct 2017 11:09:36 -0400 |
parents |
006b6ec5166f |
children |
(none) |
#!/bin/sh
#|-*- mode:lisp -*-|#
#|
exec ros -Q -- $0 "$@"
|#
#|
A Roswell script to compile Parenscript files.
Usage
-----
$ compile-parenscript filename...
LICENSE
-------
MIT/X11.
|#
(unless (find-package :uiop)
(ql:quickload '(:uiop) :silent t))
(unless (find-package :parenscript)
(ql:quickload '(:parenscript) :silent t))
(defun terminate (code &optional message &rest args)
(when message
(format *error-output* "~&~A~%"
(apply #'format nil (princ-to-string message) args)))
(uiop:quit code))
(defun compile-parenscript-file (source)
(let* ((source-path (pathname source))
(target-path (make-pathname :type "js"
:defaults source-path)))
(with-open-file (output target-path
:direction :output
:if-exists :supersede)
(write-string (parenscript::ps-compile-file source-path) output)))
(values))
(defun main (&rest filenames)
(unless filenames
(terminate -1 "Usage: compile-parenscript filename..."))
(mapc #'compile-parenscript-file filenames))