summaryrefslogtreecommitdiff
path: root/xmake/actions/lua
diff options
context:
space:
mode:
authorruki <[email protected]>2016-03-22 20:24:24 +0800
committerruki <[email protected]>2016-03-22 20:24:31 +0800
commitaca0257d26134ff95889acb419d49701fee4ec61 (patch)
treec1a2f332156aba8295b0522fa70f08783e9633c6 /xmake/actions/lua
parentc1460e5be7f4b4e3356a8bda99703828c356cbfb (diff)
impl lua action
Diffstat (limited to 'xmake/actions/lua')
-rw-r--r--xmake/actions/lua/scripts/echo.lua32
-rwxr-xr-xxmake/actions/lua/xmake.lua44
2 files changed, 68 insertions, 8 deletions
diff --git a/xmake/actions/lua/scripts/echo.lua b/xmake/actions/lua/scripts/echo.lua
new file mode 100644
index 000000000..40165df2b
--- /dev/null
+++ b/xmake/actions/lua/scripts/echo.lua
@@ -0,0 +1,32 @@
+--!The Automatic Cross-platform Build Tool
+--
+-- XMake is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU Lesser General Public License as published by
+-- the Free Software Foundation; either version 2.1 of the License, or
+-- (at your option) any later version.
+--
+-- XMake is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public License
+-- along with XMake;
+-- If not, see <a href="http://www.gnu.org/licenses/"> http://www.gnu.org/licenses/</a>
+--
+-- Copyright (C) 2015 - 2016, ruki All rights reserved.
+--
+-- @author ruki
+-- @file echo.lua
+--
+
+-- the main function
+function main(...)
+
+ -- echo all
+ for _, v in ipairs(...) do
+ printf("%s ", v:decode())
+ end
+ print("")
+
+end
diff --git a/xmake/actions/lua/xmake.lua b/xmake/actions/lua/xmake.lua
index 0a7b4b6fa..96089d0b6 100755
--- a/xmake/actions/lua/xmake.lua
+++ b/xmake/actions/lua/xmake.lua
@@ -26,6 +26,40 @@ task("lua")
-- set category
set_task_category("action")
+ -- on run
+ on_task_run(function ()
+
+ -- imports
+ import("core.base.option")
+ import("core.project.config")
+ import("core.project.global")
+ import("core.platform.platform")
+
+ -- do not load config if be not given -f or -P options
+ if option.get("file") or option.get("project") then
+
+ -- load global configure
+ global.load()
+
+ -- load project configure
+ config.load()
+
+ -- load platform
+ platform.load(config.plat())
+
+ end
+
+ -- get script name
+ local name = option.get("script")
+ if not name then
+ raise("no script!")
+ end
+
+ -- import script
+ import("scripts." .. name).main(option.get("arguments"))
+
+ end)
+
-- set menu
set_task_menu({
-- usage
@@ -40,14 +74,8 @@ task("lua")
-- options
, options =
{
- {'s', "string", "k", nil, "Run the lua string script." }
-
- , {}
- , {nil, "script", "v", nil, "Run the given lua script."
- , " - The script name from the xmake tool directory"
- , " - The script file"
- , " - The script string" }
- , {nil, "arguments", "vs", nil, "The script arguments" }
+ {nil, "script", "v", nil, "Run the given lua script." }
+ , {nil, "arguments", "vs", nil, "The script arguments" }
}
})