v.pref: prevent `Too many targets.` from triggering when the command is an external one
							parent
							
								
									ac7feb9bca
								
							
						
					
					
						commit
						0142d58aa6
					
				|  | @ -95,7 +95,7 @@ fn (app App) gen_api_for_module_in_os(mod_name string, os_name string) string { | ||||||
| 	} | 	} | ||||||
| 	mpath := os.join_path('vlib', mod_name.replace('.', '/')) | 	mpath := os.join_path('vlib', mod_name.replace('.', '/')) | ||||||
| 	tmpname := '/tmp/${mod_name}_${os_name}.c' | 	tmpname := '/tmp/${mod_name}_${os_name}.c' | ||||||
| 	prefs, _ := pref.parse_args(['-os', os_name, '-o', tmpname, '-shared', mpath]) | 	prefs, _ := pref.parse_args([], ['-os', os_name, '-o', tmpname, '-shared', mpath]) | ||||||
| 	mut b := builder.new_builder(prefs) | 	mut b := builder.new_builder(prefs) | ||||||
| 	b.compile_c() | 	b.compile_c() | ||||||
| 	mut res := []string{} | 	mut res := []string{} | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ import v.util | ||||||
| import v.builder | import v.builder | ||||||
| 
 | 
 | ||||||
| const ( | const ( | ||||||
| 	simple_cmd                          = [ | 	external_tools                      = [ | ||||||
| 		'fmt', | 		'fmt', | ||||||
| 		'up', | 		'up', | ||||||
| 		'vet', | 		'vet', | ||||||
|  | @ -63,14 +63,14 @@ fn main() { | ||||||
| 			} else { | 			} else { | ||||||
| 				mut args_and_flags := util.join_env_vflags_and_os_args()[1..].clone() | 				mut args_and_flags := util.join_env_vflags_and_os_args()[1..].clone() | ||||||
| 				args_and_flags << ['run', '-'] | 				args_and_flags << ['run', '-'] | ||||||
| 				pref.parse_args(args_and_flags) | 				pref.parse_args(external_tools, args_and_flags) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		util.launch_tool(false, 'vrepl', os.args[1..]) | 		util.launch_tool(false, 'vrepl', os.args[1..]) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	args_and_flags := util.join_env_vflags_and_os_args()[1..] | 	args_and_flags := util.join_env_vflags_and_os_args()[1..] | ||||||
| 	prefs, command := pref.parse_args(args_and_flags) | 	prefs, command := pref.parse_args(external_tools, args_and_flags) | ||||||
| 	if prefs.is_verbose { | 	if prefs.is_verbose { | ||||||
| 		// println('args= ')
 | 		// println('args= ')
 | ||||||
| 		// println(args) // QTODO
 | 		// println(args) // QTODO
 | ||||||
|  | @ -95,7 +95,7 @@ fn main() { | ||||||
| 	} | 	} | ||||||
| 	// Start calling the correct functions/external tools
 | 	// Start calling the correct functions/external tools
 | ||||||
| 	// Note for future contributors: Please add new subcommands in the `match` block below.
 | 	// Note for future contributors: Please add new subcommands in the `match` block below.
 | ||||||
| 	if command in simple_cmd { | 	if command in external_tools { | ||||||
| 		// External tools
 | 		// External tools
 | ||||||
| 		util.launch_tool(prefs.is_verbose, 'v' + command, os.args[1..]) | 		util.launch_tool(prefs.is_verbose, 'v' + command, os.args[1..]) | ||||||
| 		return | 		return | ||||||
|  |  | ||||||
|  | @ -145,7 +145,7 @@ pub mut: | ||||||
| 	cache_manager       vcache.CacheManager | 	cache_manager       vcache.CacheManager | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| pub fn parse_args(args []string) (&Preferences, string) { | pub fn parse_args(known_external_commands []string, args []string) (&Preferences, string) { | ||||||
| 	mut res := &Preferences{} | 	mut res := &Preferences{} | ||||||
| 	$if x64 { | 	$if x64 { | ||||||
| 		res.m64 = true // follow V model by default
 | 		res.m64 = true // follow V model by default
 | ||||||
|  | @ -417,7 +417,8 @@ pub fn parse_args(args []string) (&Preferences, string) { | ||||||
| 						if command == 'run' { | 						if command == 'run' { | ||||||
| 							break | 							break | ||||||
| 						} | 						} | ||||||
| 					} else if is_source_file(command) && is_source_file(arg) { | 					} else if is_source_file(command) && is_source_file(arg) | ||||||
|  | 						&& command !in known_external_commands { | ||||||
| 						eprintln('Too many targets. Specify just one target: <target.v|target_directory>.') | 						eprintln('Too many targets. Specify just one target: <target.v|target_directory>.') | ||||||
| 						exit(1) | 						exit(1) | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue