fix "v symlink" with relative paths

pull/2829/head
pfefferminz132 2019-11-21 02:34:08 +01:00 committed by Alexander Medvednikov
parent 8e32ef382a
commit dcea76ff41
2 changed files with 7 additions and 6 deletions

View File

@ -1036,21 +1036,22 @@ pub fn vfmt(args[]string) {
pub fn create_symlink() {
$if windows { return }
vexe := os.executable()
vexe := vexe_path()
link_path := '/usr/local/bin/v'
ret := os.system('ln -sf $vexe $link_path')
if ret == 0 {
println('symlink "$link_path" has been created')
println('Symlink "$link_path" has been created')
} else {
println('failed to create symlink "$link_path", '+
'make sure you run with sudo')
println('Failed to create symlink "$link_path". Try again with sudo.')
}
}
pub fn vexe_path() string {
vexe := os.getenv('VEXE')
if '' != vexe { return vexe }
return os.executable()
real_vexe_path := os.realpath(os.executable())
os.setenv('VEXE', real_vexe_path, true)
return real_vexe_path
}
pub fn verror(s string) {

View File

@ -29,7 +29,7 @@ mut:
// `mod` == "vlib/os"
fn generate_vh(mod string) {
println('\n\n\n\nGenerating a V header file for module `$mod`')
vexe := os.executable()
vexe := vexe_path()
full_mod_path := filepath.join(os.dir(vexe), mod)
dir := if mod.starts_with('vlib') { '$compiler.v_modules_path${os.path_separator}$mod' } else { mod }
path := dir + '.vh'