71 lines
1.7 KiB
Makefile
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.")))
|