#lang mzscheme
(require mzlib/etc)
(require scheme/file)
(define tiles-module-spec '(planet "tiles.ss" ("sbloch" "tiles.plt" 1 5)))
(define destdir (build-path (find-system-path 'addon-dir)
(string->path (version))
(string->path "collects")
(string->path "installed-teachpacks")
))
(define (makefile filename module-spec)
(let ((destfile (build-path destdir (string->path filename)))
(require-stmt `(require ,module-spec))
(provide-stmt `(provide (all-from ,module-spec))))
(if (file-exists? destfile)
(display "Teachpack file already exists.")
(begin
(unless (directory-exists? destdir)
(make-directory* destdir))
(if (member 'write (file-or-directory-permissions destdir))
(begin
(with-output-to-file destfile
(lambda ()
(begin (display "(module tiles mzscheme")
(newline)
(write require-stmt)
(newline)
(write provide-stmt)
(newline)
(display ")")
(newline))))
(display (format "Wrote file ~s to installed-teachpacks directory~n" filename)))
(display (format "Unable to write file ~s to installed-teachpacks directory~n" filename)))
)
)
)
)
(makefile "tiles.ss" '(planet "tiles.ss" ("sbloch" "tiles.plt" 1 2)))