From d0ff66c9abe9d6abbca12fd811e0c3cb69c1033a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Fri, 22 Nov 2019 23:26:32 +0800 Subject: =?UTF-8?q?=E6=95=B4=E7=90=86=E4=B8=80=E4=B8=8B=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/src/uri.lua | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 script/src/uri.lua (limited to 'script/src/uri.lua') diff --git a/script/src/uri.lua b/script/src/uri.lua new file mode 100644 index 00000000..9053447c --- /dev/null +++ b/script/src/uri.lua @@ -0,0 +1,29 @@ +local fs = require 'bee.filesystem' +local platform = require 'bee.platform' +local sandbox = require 'sandbox' +local luaUriPath = (ROOT / 'src' / '3rd' / 'lua-uri'):string() +local URI = sandbox('uri.lua', luaUriPath, io.open) +local URI_FILE = sandbox('uri/file.lua', luaUriPath, io.open) +local OS = platform.OS == 'Windows' and 'win32' or 'unix' + +local function decode(uri) + local obj = URI:new(uri) + if not obj.filesystem_path then + return nil + end + local fullPath = obj:filesystem_path(OS) + local path = fs.path(fullPath) + return path +end + +local function encode(path) + local fullPath = fs.absolute(ROOT / path) + local obj = URI_FILE.make_file_uri(fullPath:string(), OS) + local uri = obj:uri() + return uri +end + +return { + encode = encode, + decode = decode, +} -- cgit v1.2.3