98 lines
2.9 KiB
Plaintext
98 lines
2.9 KiB
Plaintext
notes
|
|
-----
|
|
|
|
- add tests
|
|
. test all existing behavior
|
|
. add parsing tests
|
|
. check dependency ordering
|
|
|
|
- allow leading tabs or leading spaces, but not a mix
|
|
after leading tabs, additional spaces or tabs are allowed
|
|
for line continuation
|
|
after leading spaces, only additional spaces are allowed
|
|
for line continuation
|
|
|
|
- parsing tests
|
|
. --list: make sure the right dependencies are listed
|
|
. --show: make sure the recipe contents is parsed
|
|
|
|
make sure that bad names are disallowed
|
|
trigger all errors
|
|
|
|
- look through all justfiles for features of make that I use. so far:
|
|
. phony
|
|
. SHELL := zsh
|
|
. quiet
|
|
. make variables
|
|
|
|
- ask travis for his justfile
|
|
|
|
|
|
- remove make dependency
|
|
. recipes must be '[a-z][a-z0-9-]*'
|
|
. only allow tabs or spaces, but not both in a recipe
|
|
. simple, but with recipe dependencies
|
|
. increased indentation for line continuations
|
|
. be as strict as possible, to make future additions
|
|
backwords compatible
|
|
|
|
- add optional shebangs to recipes
|
|
. extract and run script
|
|
. preserve line numbers
|
|
. pass args as real args
|
|
|
|
- ~/.justfile
|
|
. is this for non-project specific commands, so that when you
|
|
type .j in any directory, it uses it as a justfile?
|
|
. or is it for commands which are useful across projects?
|
|
|
|
- allow a top-level shebang to script in whatever language
|
|
you like. all recipes are now implicitly in that language
|
|
. extract script up until --
|
|
. this may be ill-advised
|
|
. how do i deal with running the prelude multiple times?
|
|
. multiple top level shebangs?
|
|
#!/usr/bin/env python3
|
|
... python prelude
|
|
---
|
|
python-recipe:
|
|
print("hello")
|
|
#!/usr/bin/env perl
|
|
... perl prelude
|
|
---
|
|
perl-recipe:
|
|
print "hello"
|
|
|
|
- what is the story for allowing justfiles in subdirectories?
|
|
use a different name, like 'subjustfile' or 'jfile'.
|
|
recurse up to the justfile, but add recipes in any jfile
|
|
that you find along the way. recipes in justfile are accessible,
|
|
and run from the justfile dir. recipes in jfile are run from jfile
|
|
dir. refuse to run if a recipe in justfile and jfile conflict
|
|
|
|
- add a command for fanning out?
|
|
`j --all build` fans out into subdirectories and builds
|
|
|
|
- rust is a given, so one option is to write a very simple shell
|
|
language and only call binaries from cargo. include some kind
|
|
of dependency description, and install those binaries. should
|
|
look at rc for inspiration. 'cargo cult' is a great name.
|
|
perhaps it could avoid barewords, and actually have types that
|
|
map to rust types.
|
|
|
|
- mascot?
|
|
. tower of babel
|
|
. howl's moving castle
|
|
. testuo
|
|
. thoth
|
|
. kali
|
|
|
|
- would it be useful to expose original directory to j recipes?
|
|
|
|
- comedy option: super complex recipe lines:
|
|
a: b c # run b and c, then a
|
|
b | a: c # run c, then b, and pipe output of b into a
|
|
a >> a.log: # run a and append output to a.log
|
|
a B C: # a takes B and C as command line args, like j a HELLO BOB
|
|
# can enforce at command line
|