notes ----- - assignment . export environment variables . no barewords . use the same rules as rust: https://doc.rust-lang.org/reference.html#string-literals . \xHH, \u{HHHHHH}, \n, \r, \t, \0, \\, \{ no other escapes . '' strings with no escapes . allow concatination: "hello, " + person + "!" . resolve dependencies between variables . disallow reassignment . static errors when variables are missing {{}}, even if recipe isn't run . run interpolated instead of lines . make quine use assignment and interpolation - write some tests to test the binary itself and all command line flags - parse arguments on command line: . by name: j build a=hello . by position: j build hello . with marker: j build hello : clean hello : . after -- : j build -- foo baz . fast errors when arguments are missing . could also allow this to override variables although maybe only after a '--': j build -- a=hello . sub arguments into recipes - change error messages to underline problem token - allow calling recipes in a justfile in a different directory: - just ../foo # ../justfile:foo - just xyz/foo # xyz/justfile:foo - just xyz/ # xyz/justfile:DEFAULT - this is going to be hard. should a single recipe with a slash require that all recipes have slashes? or should non-slash recipes still run in this directory? will need to change things a great deal - indentation is line continuation - add post requirements: # do c then a then b a: c b~ - change name back to 'just' . suggest j as alias - create some kind of group feedback forum: . email list, reddit - change description to "a polyglot command runner"? - update readme - document all code, including private stuff (can this be enforced with a lint?) #![deny(missing_docs)] - note that shell is invoked with -cu, explain -c and -u - document all features with example justfiles (also make them runnable as tests) . update tarball dep . check version string . clean . update logs (repetitive git flow) - full documentation . talk about why the syntax is so unforgiving . habit of using clever commands and writing little scripts . very low friction to write a script (no new file, chmod, add to rcs) . make list of contributors, include travis . alias .j='just --justfile ~/.justfile --working-directory ~' . lay out the structure of the code, mention tests, give tips for contributing - vim and emacs syntax hilighting (use makefile syntax hilighting for now) - split up code into modules for easier reading . parsing . tokenizing . executing - make sure there isn't any unused code - try to get some users . facebook friends . irc . r/rust