blob: 008a7c13cbfeb9efb1f43d4a4fa663176b61b1a8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
module os
pub fn mkdir(path string) ?bool {
$if js_node {
if path == '.' {
return true
}
#$fs.mkdirSync(path.valueOf())
return true
} $else {
return false
}
}
pub fn is_dir(path string) bool {
res := false
$if js_node {
#res.val = $fs.existsSync(path,str) && $fs.lstatSync(path.str).isDirectory()
}
return res
}
pub fn is_link(path string) bool {
res := false
$if js_node {
#res.val = $fs.existsSync(path.str) && $fs.lstatSync(path.str).isSymbolicLink()
}
return res
}
pub fn exists(path string) bool {
res := false
$if js_node {
#res.val = $fs.existsSync(path.str)
}
return res
}
pub fn ls(path string) ?[]string {
if !is_dir(path) {
return error('ls(): cannot open dir $dir')
}
result := []string{}
$if js_node {
#let i = 0
#$fs.readdirSync(path.str).forEach((path) => result.arr[i++] = new builtin.string(path))
}
return result
}
pub fn get_raw_line() string {
return ''
}
pub fn executable() string {
return ''
}
pub fn is_executable(path string) bool {
eprintln('TODO: There is no isExecutable on fs.stats')
return false
}
pub fn rmdir(path string) ? {
$if js_node {
err := ''
#try {
#$fs.rmdirSync(path.str)
#return;
#} catch (e) {
#err.str = 'Failed to remove "' + path.str + '": ' + e.toString()
#}
return error(err)
}
}
pub fn rm(path string) ? {
$if js_node {
err := ''
#try {
#$fs.rmSync(path.str)
#return;
#} catch (e) {
#err.str = 'Failed to remove "' + path.str + '": ' + e.toString()
#}
return error(err)
}
}
pub fn cp(src string, dst string) ? {
$if js_node {
err := ''
#try {
#$fs.cpSync(src.str,dst.str);
#return;
#} catch (e) {
#err.str = 'failed to copy ' + src.str + ' to ' + dst.str + ': ' + e.toString();
#}
return error(err)
}
}
pub fn read_file(s string) ?string {
mut err := ''
err = err
res := ''
#try {
#res.str = $fs.readFileSync(s.str).toString()
#} catch (e) {
#err.str = 'Failed to read file: ' + e.toString()
#return error(err)
#}
return res
}
pub fn getwd() string {
res := ''
#res.str = $process.cwd()
return res
}
|