Files
racket-makefile/Makefile
T

71 lines
1.7 KiB
Makefile

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