mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
vlib: filepath module
This commit is contained in:
parent
fe9d884d90
commit
7b1993b1e4
@ -7,6 +7,7 @@ module compiler
|
|||||||
import (
|
import (
|
||||||
os
|
os
|
||||||
time
|
time
|
||||||
|
filepath
|
||||||
)
|
)
|
||||||
|
|
||||||
fn todo() {
|
fn todo() {
|
||||||
@ -152,7 +153,7 @@ fn (v mut V) cc() {
|
|||||||
a << '-c'
|
a << '-c'
|
||||||
}
|
}
|
||||||
else if v.pref.is_cache {
|
else if v.pref.is_cache {
|
||||||
builtin_o_path := os.join(v_modules_path, 'cache', 'vlib', 'builtin.o')
|
builtin_o_path := filepath.join(v_modules_path, 'cache', 'vlib', 'builtin.o')
|
||||||
a << builtin_o_path.replace('builtin.o', 'strconv.o') // TODO hack no idea why this is needed
|
a << builtin_o_path.replace('builtin.o', 'strconv.o') // TODO hack no idea why this is needed
|
||||||
if os.file_exists(builtin_o_path) {
|
if os.file_exists(builtin_o_path) {
|
||||||
libs = builtin_o_path
|
libs = builtin_o_path
|
||||||
|
@ -7,6 +7,7 @@ module compiler
|
|||||||
import (
|
import (
|
||||||
os
|
os
|
||||||
strings
|
strings
|
||||||
|
filepath
|
||||||
)
|
)
|
||||||
|
|
||||||
pub const (
|
pub const (
|
||||||
@ -650,11 +651,11 @@ pub fn (v &V) get_user_files() []string {
|
|||||||
mut user_files := []string
|
mut user_files := []string
|
||||||
|
|
||||||
if v.pref.is_test {
|
if v.pref.is_test {
|
||||||
user_files << os.join(v.vroot,'vlib','compiler','preludes','tests_assertions.v')
|
user_files << filepath.join(v.vroot,'vlib','compiler','preludes','tests_assertions.v')
|
||||||
}
|
}
|
||||||
|
|
||||||
if v.pref.is_test && v.pref.is_stats {
|
if v.pref.is_test && v.pref.is_stats {
|
||||||
user_files << os.join(v.vroot,'vlib','compiler','preludes','tests_with_stats.v')
|
user_files << filepath.join(v.vroot,'vlib','compiler','preludes','tests_with_stats.v')
|
||||||
}
|
}
|
||||||
|
|
||||||
// v volt/slack_test.v: compile all .v files to get the environment
|
// v volt/slack_test.v: compile all .v files to get the environment
|
||||||
|
36
vlib/filepath/filepath.v
Normal file
36
vlib/filepath/filepath.v
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
module filepath
|
||||||
|
|
||||||
|
import(
|
||||||
|
os
|
||||||
|
strings
|
||||||
|
)
|
||||||
|
|
||||||
|
// return the extension in the file `path`
|
||||||
|
pub fn ext(path string) string {
|
||||||
|
pos := path.last_index_byte(`.`)
|
||||||
|
if pos != -1 {
|
||||||
|
return path[pos..]
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
|
||||||
|
// returns true if `path` is absolute
|
||||||
|
pub fn is_abs(path string) bool {
|
||||||
|
$if windows {
|
||||||
|
return path[0] == `/` || // incase we're in MingGW bash
|
||||||
|
(path[0].is_letter() && path[1] == `:`)
|
||||||
|
}
|
||||||
|
return path[0] == `/`
|
||||||
|
}
|
||||||
|
|
||||||
|
// pass directories as parameters, returns path as string
|
||||||
|
// TODO use []string.join once ...string becomes "[]string"
|
||||||
|
pub fn join(base string, dirs ...string) string {
|
||||||
|
mut path := strings.new_builder(50)
|
||||||
|
path.write(base.trim_right('\\/'))
|
||||||
|
for d in dirs {
|
||||||
|
path.write(os.path_separator)
|
||||||
|
path.write(d)
|
||||||
|
}
|
||||||
|
return path.str()
|
||||||
|
}
|
12
vlib/os/os.v
12
vlib/os/os.v
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
module os
|
module os
|
||||||
|
|
||||||
import strings
|
import filepath
|
||||||
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
@ -920,13 +920,7 @@ pub fn mkdir_all(path string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO use []string.join once ...string becomes "[]string"
|
|
||||||
pub fn join(base string, dirs ...string) string {
|
pub fn join(base string, dirs ...string) string {
|
||||||
mut path := strings.new_builder(50)
|
println('use filepath.join')
|
||||||
path.write(base.trim_right('\\/'))
|
return filepath.join(base, dirs)
|
||||||
for d in dirs {
|
|
||||||
path.write(os.path_separator)
|
|
||||||
path.write(d)
|
|
||||||
}
|
|
||||||
return path.str()
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user