summaryrefslogtreecommitdiff
path: root/xmake/actions/create/main.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2019-09-20 00:32:22 +0800
committerruki <[email protected]>2019-09-19 21:14:14 +0800
commita838d8561e98342ed2c793c239f495357e4179c1 (patch)
tree28bf94e58940f00433249c3d98f9ebfc6929ad88 /xmake/actions/create/main.lua
parent5fa580d86834bf0d762c62626a576419724fe5c7 (diff)
add template files
Diffstat (limited to 'xmake/actions/create/main.lua')
-rw-r--r--xmake/actions/create/main.lua27
1 files changed, 23 insertions, 4 deletions
diff --git a/xmake/actions/create/main.lua b/xmake/actions/create/main.lua
index ffa31bb10..987d36b16 100644
--- a/xmake/actions/create/main.lua
+++ b/xmake/actions/create/main.lua
@@ -80,16 +80,24 @@ function _create_project_or_files(language, templateid, targetname)
os.cd(projectdir)
-- create project
+ local filedirs = {}
local sourcedir = path.join(tempinst:scriptdir(), "project")
if os.isdir(sourcedir) then
- os.cp(path.join(sourcedir, "*"), projectdir)
+ for _, filedir in ipairs(os.filedirs(path.join(sourcedir, "*"))) do
+ os.cp(filedir, projectdir)
+ table.insert(filedirs, path.relative(filedir, sourcedir))
+ end
os.cp(path.join(os.programdir(), "scripts", "gitignore"), path.join(projectdir, ".gitignore"))
+ table.insert(filedirs, ".gitignore")
end
-- create files
sourcedir = path.join(tempinst:scriptdir(), "files")
if os.isdir(sourcedir) then
- os.cp(path.join(sourcedir, "*"), projectdir)
+ for _, filedir in ipairs(os.filedirs(path.join(sourcedir, "*"))) do
+ os.cp(filedir, projectdir)
+ table.insert(filedirs, path.relative(filedir, sourcedir))
+ end
end
-- get the builtin variables
@@ -110,6 +118,17 @@ function _create_project_or_files(language, templateid, targetname)
if after_create then
after_create(tempinst, {targetname = targetname})
end
+
+ -- trace
+ for _, filedir in ipairs(filedirs) do
+ if os.isdir(filedir) then
+ for _, file in ipairs(os.files(path.join(filedir, "**"))) do
+ print(" > %s", file)
+ end
+ else
+ print(" > %s", filedir)
+ end
+ end
end
-- main
@@ -119,10 +138,10 @@ function main()
os.cd(os.workingdir())
-- the target name
- local targetname = option.get("target") or option.get("name") or path.basename(project.directory()) or "demo"
+ local targetname = option.get("target") or path.basename(project.directory()) or "demo"
-- trace
- cprint("${bright}create %s ...", targetname)
+ cprint("${bright}create %s files ...", targetname)
-- create project or files from template
_create_project_or_files(option.get("language"), option.get("template"), targetname)