v4 / vlib / v3 / transform / comptime.v
22 lines · 20 sloc · 491 bytes · 6c4d26f1f98c5464b012a375667ab345e462f7e0
Raw
1module transform
2
3import os
4
5// vmod_root supports vmod root handling for Transformer.
6fn (t &Transformer) vmod_root() string {
7 mut dir := if t.cur_file.len > 0 { os.dir(t.cur_file) } else { os.getwd() }
8 if dir.len == 0 {
9 dir = os.getwd()
10 }
11 for {
12 if os.exists(os.join_path(dir, 'v.mod')) {
13 return dir
14 }
15 parent := os.dir(dir)
16 if parent == dir || parent.len == 0 {
17 return if t.cur_file.len > 0 { os.dir(t.cur_file) } else { os.getwd() }
18 }
19 dir = parent
20 }
21 return dir
22}
23