Madlibs DSL for templating text (http://polemic.vmchale.com/madlang)

root / Justfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
latest:
    @echo 'github:'
    @hub release | head -n2 | tail -n1
    @echo 'hackage:'
    @cabal list madlang | grep -P -o '\d+\.\d+\.\d+\.\d+' | head -n1

check:
    git diff master origin/master

deps:
    stack list-dependencies | less

timed:
    time madlang sample demo/shakespeare.mad

darcs:
    darcs optimize clean
    darcs optimize pristine
    darcs optimize cache

next:
    @export VERSION=$(ac madlang.cabal | grep -P -o '\d+\.\d+\.\d+\.\d+' madlang.cabal | head -n1 | awk -F. '{$NF+=1; print $0}' | sed 's/ /\./g') && echo $VERSION && sed -i "2s/[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+/$VERSION/" madlang.cabal
    git commit -am "next"
    sn c .

ci:
    @cabal new-build all
    @cabal new-test
    @stack build --test --bench --no-run-tests --no-run-benchmarks
    weeder .
    hlint src app test bench
    yamllint stack.yaml
    yamllint .travis.yml
    yamllint appveyor.yml
    yamllint .stylish-haskell.yaml
    yamllint .hlint.yaml
    yamllint .yamllint

size:
    sn d $(fd 'madlang$' -I | tail -n1)

manpages:
    pandoc man/MANPAGE.md -s -t man -o man/madlang.1

upload:
    rm -rf dist/ .ghc.environment.*
    cabal sdist
    cabal upload --publish $(fd '\.tar\.gz$' -I)

release:
    git tag "$(grep -P -o '\d+\.\d+\.\d+\.\d+' madlang.cabal | head -n1)"
    git push origin --tags
    git tag -d "$(grep -P -o '\d+\.\d+\.\d+\.\d+' madlang.cabal | head -n1)"
    git push origin master

name:
    github-release edit -s $(ac ~/.git-token) -u vmchale -r madlang -n "$(madlang run ~/programming/madlang/releases/releases.mad)" -t "$(grep -P -o '\d+\.\d+\.\d+\.\d+' madlang.cabal | head -n1)"

clean:
    sn c . -g
    rm -f man/madlang.1 madlang.hp madlang.ps madlang.aux