just icon indicating copy to clipboard operation
just copied to clipboard

allow `import <variable-name> `

Open Ziqi-Yang opened this issue 1 year ago • 3 comments

For example:

import? join(config_directory(), "mpm/root.just")

Ziqi-Yang avatar Mar 24 '24 07:03 Ziqi-Yang

The same need for all set variables, like:

set dotenv-path := "" + MPM_CONFIG_DIR + "/config"

I want to create an application mainly using just. Currently I can only do things like import? '~/.mpm.root.just', which is awkward.

Ziqi-Yang avatar Mar 24 '24 07:03 Ziqi-Yang

The inability to do variable (or environment variable) substitution for import paths ended up preventing me from a desired DRYing out of Justfile content as well, rather than having to duplicate a Justfile name that I want to include as part of replicating a subset of local contents.

It appears that just's GRAMMAR (currently) accepts only strings for imports as well as modules; so not sure if there is any easy way to implement this without big impacts.

JonathanDoughty avatar Apr 28 '24 01:04 JonathanDoughty

I can see why this is desirable, but it's tough at the implementation level. Justfiles are statically analyzed before anything runs, including any expression evaluation. I would like to support this, but not at the cost of making the implementation much more complicated.

#1849 partially fixes this, since it allows for expanding environment variables inside of import paths, although it doesn't support arbitrary expressions, and environment variables are loaded without taking into account things like export statements and .env files.

casey avatar May 19 '24 00:05 casey