#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.")))