summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2016-02-01 11:48:35 +0800
committerruki <[email protected]>2016-02-15 19:10:26 +0800
commit319d430b6befbddaa4b10584a43a52b47dd8aaf0 (patch)
treed4e47680dbe74b2708a1a09f574fde0f12337348
parent4d9ea35a4cc8e4a2ac0d7e2633f088ca0be7e7f1 (diff)
wrap some interfaces for sandbox os
-rw-r--r--xmake/core/sandbox/builtin/os.lua77
1 files changed, 65 insertions, 12 deletions
diff --git a/xmake/core/sandbox/builtin/os.lua b/xmake/core/sandbox/builtin/os.lua
index 3689086f2..717fa2453 100644
--- a/xmake/core/sandbox/builtin/os.lua
+++ b/xmake/core/sandbox/builtin/os.lua
@@ -23,24 +23,77 @@
-- load modules
local io = require("base/io")
local os = require("base/os")
+local utils = require("base/utils")
--- define module: _os
-local _os = _os or {}
+-- define module
+local sandbox_builtin_os = sandbox_builtin_os or {}
--- cat the given file
-function _os.cat(filepath, linecount)
+-- copy file or directory
+function sandbox_builtin_os.cp(src, dst)
- -- cat it
- return io.cat(filepath, linecount)
+ -- check
+ assert(src and dst)
+
+ -- done
+ local ok, errors = os.cp(src, dst)
+ if not ok then
+ utils.error(errors)
+ utils.abort()
+ end
+
end
--- only copy the interfaces of os
-for k, v in pairs(os) do
- if type(v) == "function" then
- _os[k] = v
+-- move file or directory
+function sandbox_builtin_os.mv(src, dst)
+
+ -- check
+ assert(src and dst)
+
+ -- done
+ local ok, errors = os.mv(src, dst)
+ if not ok then
+ utils.error(errors)
+ utils.abort()
end
+
end
--- return module: _os
-return _os
+-- remove file or directory
+function sandbox_builtin_os.rm(file_or_dir, emptydir)
+
+ -- check
+ assert(file_or_dir)
+
+ -- done
+ local ok, errors = os.rm(file_or_dir, emptydir)
+ if not ok then
+ utils.error(errors)
+ utils.abort()
+ end
+
+end
+
+-- change to directory
+function sandbox_builtin_os.cd(dir)
+
+ -- check
+ assert(dir)
+
+ -- done
+ local ok, errors = os.cd(dir)
+ if not ok then
+ utils.error(errors)
+ utils.abort()
+ end
+
+end
+
+-- register some public interfaces
+sandbox_builtin_os.match = os.match
+sandbox_builtin_os.isdir = os.isdir
+sandbox_builtin_os.isfile = os.isfile
+sandbox_builtin_os.curdir = os.curdir
+
+-- return module
+return sandbox_builtin_os