tools: fix the first run of `v translate hw.c`

master
Delyan Angelov 2022-06-19 16:19:56 +03:00
parent b9cb56572f
commit 7b1ade237b
No known key found for this signature in database
GPG Key ID: 66886C0F12D595ED
1 changed files with 7 additions and 5 deletions

View File

@ -11,33 +11,35 @@ fn main() {
c2v_bin := os.join_path(c2v_dir, 'c2v') c2v_bin := os.join_path(c2v_dir, 'c2v')
// Git clone c2v // Git clone c2v
if !os.exists(c2v_dir) { if !os.exists(c2v_dir) {
println('C2V is not installed. Downloading C2V...') println('C2V is not installed. Cloning C2V to $c2v_dir ...')
println(vmodules)
os.chdir(vmodules)? os.chdir(vmodules)?
res := os.execute('git clone --depth 1 git@github.com:/vlang/c2v_alpha.git') res := os.execute('git clone --depth 1 git@github.com:/vlang/c2v_alpha.git')
if res.exit_code != 0 { if res.exit_code != 0 {
eprintln('Failed to download C2V. Perhaps it is not released yet? Is it June 20 yet?') eprintln('Failed to download C2V. Perhaps it is not released yet? Is it June 20 yet?')
return exit(1)
} }
} }
// Compile c2v // Compile c2v
if !os.exists(c2v_bin) { if !os.exists(c2v_bin) {
os.chdir(c2v_dir)? os.chdir(c2v_dir)?
println('Compiling c2v ...')
res2 := os.execute('v -d trace_verbose -g -o c2v -experimental -w .') res2 := os.execute('v -d trace_verbose -g -o c2v -experimental -w .')
if res2.exit_code != 0 { if res2.exit_code != 0 {
eprintln('Failed to compile C2V. This should never happen, please report it via GitHub.') eprintln('Failed to compile C2V. This should never happen, please report it via GitHub.')
return exit(2)
} }
} }
if os.args.len < 3 { if os.args.len < 3 {
eprintln('Wrong number of args. Use `v translate file.c`.') eprintln('Wrong number of args. Use `v translate file.c`.')
return exit(3)
} }
passed_args := util.args_quote_paths(os.args[2..]) passed_args := util.args_quote_paths(os.args[2..])
// println(passed_args) // println(passed_args)
os.chdir(os.wd_at_startup)?
res := os.execute('$c2v_bin $passed_args') res := os.execute('$c2v_bin $passed_args')
if res.exit_code != 0 { if res.exit_code != 0 {
eprintln('C2V failed to translate this file. This should never happen, please report it via GitHub.') eprintln('C2V failed to translate this file. This should never happen, please report it via GitHub.')
exit(4)
} }
println('Success!') println('Success!')
// println(res.output) // println(res.output)