Open zekefast opened 4 months ago
If you can use just
master you can use shell()
function to do the comparison in an external program.
Otherwise, or alternatively, maybe semver_matches()
with fake semantic versions constructed from the numbers?
But I agree that proper numeric comparison would be a useful feature. Since everything is a string in just
, it would probably have to be new function(s) for numeric comparison?
@laniakea64 Thank you a lot! We are using 1.26.0
, so shell()
is not available, but server_matches()
does the trick.
But yeah! It DOES look wild!
threads := env('THREADS', \
if semver_matches('0.0.' + num_cpus(), '> 0.0.' + DEFAULT_THREADS) == 'true' { \
DEFAULT_THREADS \
} else { \
num_cpus() \
} \
)
But I agree that proper numeric comparison would be a useful feature. Since everything is a string in just, it would probably have to be new function(s) for numeric comparison?
It seems like it. At least this what I've though about as well once I discovered that numeric comparison is hard thing to do in just
.
I would like to do some numbers comparison, specifically comparing numbers of cpus returned by
num_cpus()
function, but really have troubles with that.Here is an example of
justfile
:What I would like to is to replace logic in
env('THREADS', DEFAULT_THREADS)
to something likeMoving that check to recipe context isn't an option as there are many recipes to update and for some of them the call is complex already.
What I tried:
`, but then I can't interpolate
DEFAULT_THREADSand use
num_cpus()`.just
recipe for calculation in shell context and call it thenenv('THREADS', `just _do_calculation`)
, butjust
falls into recursive loop I think and I haven't found how to avoid it without passing even more extra parameters of setting and checking some flags.Is it possible to do this or we have to add new things to
just
for that?Thank you in advance!