#lang racket

(require racket-makefile
         package-zipper
         net/sendurl
         )


(target all
        (displayln "use (make clean) or (make package)")
        )

(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))
        (when (directory-exists? "scribblings")
          (for-each (λ (f) (displayln f) (rm-f f)) (list-files "scribblings" #px"[.](css|js|html)$")))
        )

(target package
        (deps clean)
        (zip-package))

(target zip
        (deps package))

(define doc-target "docs/git.html")
(define doc-src "scribblings/git.scrbl")

(target doc-target
        (deps doc-src)
        (unless (directory-exists? "docs")
          (make-directory "docs"))
        (raco '(scribble --html +m --dest "docs" $<)))

(target doc
        (deps doc-target)
        (displayln "Documentation built")
        )

(target showdoc
        (deps doc)
        (send-url/file doc-target))

(target refresh
        (displayln "Refreshing makefile")
        (refresh-makefile)
        (displayln "done.")
        )
(target setup
        (raco '(setup git)))