| freeqsay: Nim port of the Clojure implementation fa53aa2 nandi 4h ago | 1 | # freeqsay recipes. Everything here assumes nim on PATH. |
| 2 | |
| 3 | # Show the recipes. |
| 4 | default: |
| 5 | @just --list |
| 6 | |
| 7 | # Compile the standalone binary (optimized). |
| 8 | build: |
| 9 | nim c -d:release -d:ssl --hints:off -o:freeqsay src/freeqsay.nim |
| 10 | |
| just static: fully static builds through a pinned nimstatic 078b24d nandi 1h ago | 11 | # Fully static binary → ./freeqsay-static. No glibc, no dlopen'd OpenSSL, so it |
| 12 | # runs on any Linux. tools/nimstatic is a DotSlash file: the first run fetches |
| 13 | # the pinned nimstatic build, verifies its hash and caches it. |
| 14 | static: |
| 15 | ./tools/nimstatic src/freeqsay.nim -o freeqsay-static -- -d:ssl |
| 16 | |
| freeqsay: Nim port of the Clojure implementation fa53aa2 nandi 4h ago | 17 | # Run the test suite. |
| 18 | test: |
| 19 | nim c -d:ssl --hints:off -r tests/test_avatar.nim |
| 20 | |
| 21 | # Run from source, without an optimized build: `just run jay.bsky.team hello`. |
| 22 | run *args: |
| 23 | nim r -d:ssl --hints:off src/freeqsay.nim {{args}} |
| 24 | |
| 25 | # Screenshot the output, gapless (termshot-tight sets lineSpacing 1.0): |
| 26 | # `just shot jay.bsky.team hello`. Writes freeqsay.png. |
| 27 | shot *args: |
| 28 | termshot -c -C 80 -f freeqsay.png -- nim r -d:ssl --hints:off src/freeqsay.nim {{args}} |
| 29 | |
| 30 | # Remove build output and caches. |
| 31 | clean: |
| 32 | rm -rf freeqsay tests/test_avatar nimcache tests/nimcache |