1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

os: add execute_or_exit(cmd), use it consistently instead of execute_or_panic(cmd)

This commit is contained in:
Delyan Angelov 2021-07-20 14:04:35 +03:00
parent 850a715c79
commit 5098334e65
No known key found for this signature in database
GPG Key ID: 66886C0F12D595ED
12 changed files with 25 additions and 14 deletions

View File

@ -107,7 +107,7 @@ fn main() {
} }
fn exec(s string) string { fn exec(s string) string {
e := os.execute_or_panic(s) e := os.execute_or_exit(s)
return e.output.trim_right('\r\n') return e.output.trim_right('\r\n')
} }
@ -137,7 +137,7 @@ fn measure(cmd string, description string) int {
} }
fn measure_steps(vdir string) (int, int, int, int, int) { fn measure_steps(vdir string) (int, int, int, int, int) {
resp := os.execute_or_panic('$vdir/vprod $voptions -o v.c cmd/v') resp := os.execute_or_exit('$vdir/vprod $voptions -o v.c cmd/v')
mut scan, mut parse, mut check, mut cgen, mut vlines := 0, 0, 0, 0, 0 mut scan, mut parse, mut check, mut cgen, mut vlines := 0, 0, 0, 0, 0
lines := resp.output.split_into_lines() lines := resp.output.split_into_lines()

View File

@ -32,7 +32,7 @@ fn main() {
println('resp != 0, skipping') println('resp != 0, skipping')
} else { } else {
os.chdir('website') os.chdir('website')
os.execute_or_panic('git checkout gh-pages') os.execute_or_exit('git checkout gh-pages')
os.cp('../index.html', 'index.html') ? os.cp('../index.html', 'index.html') ?
os.system('git commit -am "update benchmark"') os.system('git commit -am "update benchmark"')
os.system('git push origin gh-pages') os.system('git push origin gh-pages')

View File

@ -165,7 +165,7 @@ fn main() {
scripting.cprintln('# v commit hash: $shorter_hash | folder: $context.path_v') scripting.cprintln('# v commit hash: $shorter_hash | folder: $context.path_v')
if context.cmd_to_run.len > 0 { if context.cmd_to_run.len > 0 {
scripting.cprintln_strong('# command: ${context.cmd_to_run:-34s}') scripting.cprintln_strong('# command: ${context.cmd_to_run:-34s}')
cmdres := os.execute_or_panic(context.cmd_to_run) cmdres := os.execute_or_exit(context.cmd_to_run)
if cmdres.exit_code != 0 { if cmdres.exit_code != 0 {
scripting.cprintln_strong('# exit code: ${cmdres.exit_code:-4d}') scripting.cprintln_strong('# exit code: ${cmdres.exit_code:-4d}')
} }

View File

@ -4,7 +4,7 @@ const test_path = 'vcreate_test'
fn init_and_check() ? { fn init_and_check() ? {
vexe := @VEXE vexe := @VEXE
os.execute_or_panic('$vexe init') os.execute_or_exit('$vexe init')
assert os.read_file('vcreate_test.v') ? == [ assert os.read_file('vcreate_test.v') ? == [
'module main\n', 'module main\n',
@ -58,7 +58,7 @@ fn test_v_init_in_git_dir() ? {
os.rmdir_all(dir) or {} os.rmdir_all(dir) or {}
} }
os.chdir(dir) os.chdir(dir)
os.execute_or_panic('git init .') os.execute_or_exit('git init .')
init_and_check() ? init_and_check() ?
} }
@ -73,7 +73,7 @@ fn test_v_init_no_overwrite_gitignore() ? {
os.chdir(dir) os.chdir(dir)
vexe := @VEXE vexe := @VEXE
os.execute_or_panic('$vexe init') os.execute_or_exit('$vexe init')
assert os.read_file('.gitignore') ? == 'blah' assert os.read_file('.gitignore') ? == 'blah'
} }

View File

@ -32,7 +32,7 @@ fn main() {
} }
fn compile(vroot string, cmd string) { fn compile(vroot string, cmd string) {
result := os.execute_or_panic(cmd) result := os.execute_or_exit(cmd)
if result.exit_code != 0 { if result.exit_code != 0 {
eprintln('cannot compile to `$vroot`: \n$result.output') eprintln('cannot compile to `$vroot`: \n$result.output')
exit(1) exit(1)

View File

@ -135,7 +135,7 @@ fn (app App) git_command(command string) {
if git_result.exit_code < 0 { if git_result.exit_code < 0 {
app.get_git() app.get_git()
// Try it again with (maybe) git installed // Try it again with (maybe) git installed
os.execute_or_panic('git $command') os.execute_or_exit('git $command')
} }
if git_result.exit_code != 0 { if git_result.exit_code != 0 {
eprintln(git_result.output) eprintln(git_result.output)

View File

@ -49,7 +49,7 @@ fn test_can_compile_and_use_library_with_skip_unused() {
fn v_compile(vopts string) os.Result { fn v_compile(vopts string) os.Result {
cmd := '"$vexe" -showcc $vopts' cmd := '"$vexe" -showcc $vopts'
// dump(cmd) // dump(cmd)
res := os.execute_or_panic(cmd) res := os.execute_or_exit(cmd)
// dump(res) // dump(res)
assert res.exit_code == 0 assert res.exit_code == 0
return res return res

View File

@ -15,7 +15,7 @@ fn test_syscallwrappers() {
os.chdir(dot_checks) os.chdir(dot_checks)
checks_v := 'checks.v' checks_v := 'checks.v'
assert os.exists(checks_v) assert os.exists(checks_v)
rc := os.execute_or_panic('v run $checks_v') rc := os.execute_or_exit('v run $checks_v')
assert rc.exit_code == 0 assert rc.exit_code == 0
assert !rc.output.contains('V panic: An assertion failed.') assert !rc.output.contains('V panic: An assertion failed.')
assert !rc.output.contains('failed') assert !rc.output.contains('failed')

View File

@ -622,6 +622,17 @@ pub fn execute_or_panic(cmd string) Result {
return res return res
} }
pub fn execute_or_exit(cmd string) Result {
res := execute(cmd)
if res.exit_code != 0 {
eprintln('failed cmd: $cmd')
eprintln('failed code: $res.exit_code')
eprintln(res.output)
exit(1)
}
return res
}
// is_atty returns 1 if the `fd` file descriptor is open and refers to a terminal // is_atty returns 1 if the `fd` file descriptor is open and refers to a terminal
pub fn is_atty(fd int) int { pub fn is_atty(fd int) int {
$if windows { $if windows {

View File

@ -524,7 +524,7 @@ fn (mut v Builder) cc() {
mut ccompiler := v.pref.ccompiler mut ccompiler := v.pref.ccompiler
if v.pref.os == .ios { if v.pref.os == .ios {
ios_sdk := if v.pref.is_ios_simulator { 'iphonesimulator' } else { 'iphoneos' } ios_sdk := if v.pref.is_ios_simulator { 'iphonesimulator' } else { 'iphoneos' }
ios_sdk_path_res := os.execute_or_panic('xcrun --sdk $ios_sdk --show-sdk-path') ios_sdk_path_res := os.execute_or_exit('xcrun --sdk $ios_sdk --show-sdk-path')
mut isysroot := ios_sdk_path_res.output.replace('\n', '') mut isysroot := ios_sdk_path_res.output.replace('\n', '')
arch := if v.pref.is_ios_simulator { arch := if v.pref.is_ios_simulator {
'-arch x86_64' '-arch x86_64'

View File

@ -12,7 +12,7 @@ fn test_the_v_compiler_can_be_invoked() {
println('vexecutable: $vexec') println('vexecutable: $vexec')
assert vexec != '' assert vexec != ''
vcmd := '"$vexec" -version' vcmd := '"$vexec" -version'
r := os.execute_or_panic(vcmd) r := os.execute_or_exit(vcmd)
assert r.exit_code == 0 assert r.exit_code == 0
// println('"$vcmd" exit_code: $r.exit_code | output: $r.output') // println('"$vcmd" exit_code: $r.exit_code | output: $r.output')
vcmd_error := '"$vexec" nonexisting.v' vcmd_error := '"$vexec" nonexisting.v'

View File

@ -248,7 +248,7 @@ pub fn launch_tool(is_verbose bool, tool_name string, args []string) {
if is_verbose { if is_verbose {
println('Compiling $tool_name with: "$compilation_command"') println('Compiling $tool_name with: "$compilation_command"')
} }
tool_compilation := os.execute_or_panic(compilation_command) tool_compilation := os.execute_or_exit(compilation_command)
if tool_compilation.exit_code != 0 { if tool_compilation.exit_code != 0 {
eprintln('cannot compile `$tool_source`: \n$tool_compilation.output') eprintln('cannot compile `$tool_source`: \n$tool_compilation.output')
exit(1) exit(1)