os: make all rm functions return an optional
parent
f703ddfb66
commit
692ca8ac83
22
vlib/os/os.v
22
vlib/os/os.v
|
@ -643,11 +643,17 @@ pub fn rm(path string) ? {
|
||||||
// C.unlink(path.cstr())
|
// C.unlink(path.cstr())
|
||||||
}
|
}
|
||||||
// rmdir removes a specified directory.
|
// rmdir removes a specified directory.
|
||||||
pub fn rmdir(path string) {
|
pub fn rmdir(path string) ? {
|
||||||
$if !windows {
|
$if !windows {
|
||||||
C.rmdir(path.str)
|
rc := C.rmdir(path.str)
|
||||||
|
if rc == -1 {
|
||||||
|
return error(posix_get_error_msg(C.errno))
|
||||||
|
}
|
||||||
} $else {
|
} $else {
|
||||||
C.RemoveDirectory(path.to_wide())
|
rc := C.RemoveDirectory(path.to_wide())
|
||||||
|
if rc == -1 {
|
||||||
|
return error('Failed to remove "$path"')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -657,7 +663,8 @@ pub fn rmdir_recursive(path string) {
|
||||||
rmdir_all(path)
|
rmdir_all(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn rmdir_all(path string) {
|
pub fn rmdir_all(path string) ? {
|
||||||
|
mut ret_err := ''
|
||||||
items := os.ls(path) or {
|
items := os.ls(path) or {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -665,9 +672,12 @@ pub fn rmdir_all(path string) {
|
||||||
if os.is_dir(os.join_path(path, item)) {
|
if os.is_dir(os.join_path(path, item)) {
|
||||||
rmdir_all(os.join_path(path, item))
|
rmdir_all(os.join_path(path, item))
|
||||||
}
|
}
|
||||||
os.rm(os.join_path(path, item))
|
os.rm(os.join_path(path, item)) or { ret_err = err }
|
||||||
|
}
|
||||||
|
os.rmdir(path) or { ret_err = err }
|
||||||
|
if ret_err.len > 0 {
|
||||||
|
return error(ret_err)
|
||||||
}
|
}
|
||||||
os.rmdir(path)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_dir_empty(path string) bool {
|
pub fn is_dir_empty(path string) bool {
|
||||||
|
|
Loading…
Reference in New Issue