#lang racket/base (require "main.rkt") (makefile 'racket-makefile (default-target 'all) (phony 'all 'commit 'push 'status 'pull 'clean 'package 'doc 'showdoc 'refresh) (target 'all (displayln "use (make 'clean), (make 'package), or (make 'commit)")) (target 'commit (let ([st (git 'status)]) (displayln st) (when (> (length st) 0) (git 'add '-A) (git 'commit) (git 'push)))) (target 'push (git 'push)) (target 'status (displayln "git status:") (for-each (λ (e) (displayln (format "~a\t:\t~a (remote ~a)" (caddr e) (cadr e) (car e)))) (git 'status))) (target 'pull (git 'pull)) (target 'clean (for-each (λ (f) (displayln f) (rm-f f)) (list-files "." #px"([.]bak|~)$" #:recursive #t)) (for-each (λ (d) (displayln d) (rm-rf d)) (list-dirs "." #px"(compiled|doc|docs)$" #:recursive #t)) (for-each (λ (f) (displayln f) (rm-f f)) (list-files "scrbl" #px"[.](css|js|html)$"))) (target 'version (displayln (format "Next version: ~a" (git 'next-version)))) (target 'package (deps 'clean) (zip-package)) (target 'zip (deps 'package)) (target "docs/racket-makefile.html" (deps "scrbl/racket-makefile.scrbl") (unless (directory-exists? "docs") (make-directory "docs")) (raco '(scribble --html +m --dest "docs" scrbl/racket-makefile.scrbl))) (target 'doc (deps "docs/racket-makefile.html") (displayln "Documentation built")) (target 'showdoc (deps 'doc) (send-url/file "docs/racket-makefile.html")) (target 'refresh (displayln "Refreshing makefile") (refresh-makefile) (displayln "done.")))