Comments (6)
I think that would probably be confusing, and using an additional attribute for the extension isn't much of a burden. But note that an extension is only required if the interpreter requires one. Most don't, in fact the only interpreters I know if that will fail without the correct extension is cmd.exe
and PowerShell.
from just.
Is it possible to add ext name support for script
annotation:
[script("pluto")]
[extension: 'lua']
foo:
print(os.getenv("NICK"))
And following code is clean.
[script("pluto", "lua")]
foo:
print(os.getenv("NICK"))
If you use JavaScript/Types, lots of extension names: js, cjs, mjs, ts, mts.
[script("bun", "ts")]
foo:
let name: string = "jackie"
console.log(name)
from just.
Also, one more reason for not stabilizing the [script]
annotation right away: Since this is a new attribute, while it is unstable it is possible in a backwards compatible way to change the semantics of recipes with that attribute. In #1413 I discussed some shortcomings with shebang recipes, and discussed a lot of somewhat radical ideas for changing the semantics of recipes with a [script]
attribute. Ultimately I don't think any of those were great ideas, and I don't have any particular ideas for changing the semantics of recipes with the [script]
attribute, but I think it's a good idea to let it stew for a bit in case anyone can come up with some.
from just.
I wonder if there's a way to conditionally includes settings or variables to recipt like the cfg_attr
in rust.
SH := "sh"
[cfg_attr(unix, ```
set shell := ["bash", "-c"] // setting
SH := bash // variable
```)]
[cfg_attr(windows, ```
set shell := ["cmd", "/c"]
SH := cmd
```)]
[cfg_attr(cygwin, ```
set shell := ["bash", "-c"] // overwrite windows
SH := cygwin
CYGWIN := 1
```)]
[cfg_attr(true, ```
set unstable
UNSTABLE := 1
```)]
foo:
echo {{SH}} // print "cygwin" or "bash" or "cmd"
echo {{CYGWIN}} // print "1" or ""
echo {{UNSTABLE}} // print "1"
bar:
echo {{SH}} // print "sh"
echo {{CYGWIN}} // print ""
echo {{UNSTABLE}} // print ""
from just.
@g9wp This seems unrelated to the [script]
attribute.
from just.
@g9wp This seems unrelated to the
[script]
attribute.
This is a more general solution, [script]
is just equivalent to [cfg_attr(true, set shell)]
.
from just.
Related Issues (20)
- Add a --list-paths to output list of recipe paths only HOT 4
- Submodules should be groupable (or have their own group) HOT 6
- Passing arguments for python different than node? I needed to add -- HOT 4
- Parser support for attributes with multiple arguments HOT 1
- Module improvement tracking issue HOT 2
- No .ps1 extension added when pwsh.exe is started via third-party tool HOT 6
- Possible to get autocompletions working in Warp?
- dotenv-path unexpectedly loads .env from parent directory HOT 1
- [Feature Request] `just global init-rust`; an ability to define global `Justfile` that will run commands anywhere on your machine. HOT 2
- Comments Ending in Backslash also Comment following Command HOT 2
- Add ability to add new dependency without clobbering rule HOT 6
- Transitive options when using modules
- `just --list` should highlight parts of the comment surrounded by backticks (`) HOT 1
- Set default working dir for the whole justfile HOT 2
- Multiple optional parameters, specifying only one HOT 1
- Command line flag to exit without error if recipe not found HOT 1
- Add missing or (if it's there) improve module information in documentation HOT 1
- Mark recipes as exportable/non-exportable HOT 1
- Warning when compiling with Rust 1.80 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from just.