diff --git a/cmd/tools/vretry.v b/cmd/tools/vretry.v index aa23e773d74ae3..e3af7c8f2280a5 100644 --- a/cmd/tools/vretry.v +++ b/cmd/tools/vretry.v @@ -12,7 +12,9 @@ mut: fn main() { mut context := Context{} - mut fp := flag.new_flag_parser(os.args#[1..]) + args := os.args#[1..] + // dump(args) + mut fp := flag.new_flag_parser(args) fp.application('v retry') fp.version('0.0.1') fp.description('Run the command CMD in a loop, until it succeeds, or until a predetermined amount of seconds pass.') @@ -32,6 +34,7 @@ fn main() { exit(1) } cmd := command_args.join(' ') + // dump(cmd) spawn fn (context Context) { time.sleep(context.timeout) diff --git a/cmd/tools/vretry_test.v b/cmd/tools/vretry_test.v index 193b03fd11a78b..d727293ff24622 100644 --- a/cmd/tools/vretry_test.v +++ b/cmd/tools/vretry_test.v @@ -53,9 +53,10 @@ fn test_retry() { assert res.output == run(pass_cmd).output // Include flags on the cmd as well. - pass_cmd_with_flags := '${vexe} run cmd/tools/check_retry.vsh --list -x arguments' + pass_cmd_with_flags := '${vexe} run cmd/tools/check_retry.vsh --list -x -- -b js arguments' res = run('${vexe} retry -r 3 -- ${pass_cmd_with_flags}') dump_on_ci(res) assert res.exit_code == 0 - assert res.output == run(pass_cmd_with_flags).output + output_trimmed := res.output.trim_space() + assert output_trimmed == "['--list', '-x', '--', '-b', 'js', 'arguments']" } diff --git a/vlib/v/pref/pref.v b/vlib/v/pref/pref.v index 4a441b62542857..f1d61d72347da3 100644 --- a/vlib/v/pref/pref.v +++ b/vlib/v/pref/pref.v @@ -343,6 +343,9 @@ pub fn parse_args_and_show_errors(known_external_commands []string, args []strin for i := 0; i < args.len; i++ { arg := args[i] match arg { + '--' { + break + } '-wasm-validate' { res.wasm_validate = true }