Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hanging on invalid default recipe #2621

Closed
uncenter opened this issue Feb 7, 2025 · 5 comments
Closed

Hanging on invalid default recipe #2621

uncenter opened this issue Feb 7, 2025 · 5 comments

Comments

@uncenter
Copy link

uncenter commented Feb 7, 2025

I mistakenly wrote this in my justfile:

_default:
  @just --list-submodules

Which causes just to hang when invoked. This seems to be because just --list-submodules is invalid unless used alongside --list - just --list --list-submodules works as expected (hanging on that default recipe might also be some kind of bug?).

@uncenter
Copy link
Author

uncenter commented Feb 7, 2025

Ah, I guess this is because just uses some flags as commands (presumably to avoid conflicting with task names), and --list-submodules is in the "options" list rather than the "commands" list.

@uncenter uncenter changed the title Unclear that --list-submodules must be used with --list Hanging on invalid default recipe Feb 7, 2025
@uncenter
Copy link
Author

uncenter commented Feb 7, 2025

I'll repurpose this for that hanging bug I noticed. If you add that default recipe, and invoke just, I am seeing no output for a few seconds before just finally quits and logs the following (infinitely? seems to just keep going on forever until I quit the process).

error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1
error: Recipe `_default` failed on line 4 with exit code 1

@laniakea64
Copy link
Contributor

just --list-submodules apparently just runs the default recipe, which in this case is to run just --list-submodules, which again runs the default recipe, which in this case is to run just --list-submodules,...

Seems the actual issue is that --list-submodules being a silent no-op in the absence of -l is weird and unexpected?

@uncenter
Copy link
Author

uncenter commented Feb 7, 2025

Ah yep that sounds like the right diagnosis. I would expect https://docs.rs/clap/latest/clap/struct.Arg.html#method.requires to be set for

just/src/config.rs

Lines 286 to 293 in 49f282f

.arg(
Arg::new(arg::LIST_SUBMODULES)
.long("list-submodules")
.env("JUST_LIST_SUBMODULES")
.help("List recipes in submodules")
.action(ArgAction::SetTrue)
.env("JUST_LIST_SUBMODULES"),
)
so that there is some sort of error messaging.

@casey
Copy link
Owner

casey commented Feb 7, 2025

Seems reasonable, especially since --list-submodules is so easy to confuse for a command. Fixed in #2622.

@casey casey closed this as completed Feb 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants