summaryrefslogtreecommitdiff
path: root/xmake/plugins/pack/nsis/main.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2023-11-14 23:28:30 +0800
committerruki <[email protected]>2023-11-14 23:28:30 +0800
commitaa38c3aa417f60f1015446ac4254cae3fa1e16be (patch)
tree21cdd735f2417034635871a913c65cba83dc2c8f /xmake/plugins/pack/nsis/main.lua
parent2a70793d5afbca2417bc65601f3a1785a1328d76 (diff)
improve installfiles
Diffstat (limited to 'xmake/plugins/pack/nsis/main.lua')
-rw-r--r--xmake/plugins/pack/nsis/main.lua32
1 files changed, 26 insertions, 6 deletions
diff --git a/xmake/plugins/pack/nsis/main.lua b/xmake/plugins/pack/nsis/main.lua
index 9d1840b0c..15afe9881 100644
--- a/xmake/plugins/pack/nsis/main.lua
+++ b/xmake/plugins/pack/nsis/main.lua
@@ -74,19 +74,27 @@ function _get_command_strings(package, cmd)
dstfile = path.join(dstfile, path.filename(srcfile))
end
end
- table.insert(result, string.format("SetOutPath \"$INSTDIR\\%s\"", path.directory(dstfile)))
+ srcfile = path.normalize(srcfile)
+ dstfile = path.normalize(path.join("$INSTDIR", dstfile))
+ table.insert(result, string.format("SetOutPath \"%s\"", path.directory(dstfile)))
table.insert(result, string.format("File /oname=%s \"%s\"", path.filename(dstfile), srcfile))
end
elseif kind == "rm" then
- table.insert(result, string.format("Delete \"$INSTDIR\\%s\"", cmd.filepath))
+ local filepath = path.normalize(path.join("$INSTDIR", cmd.filepath))
+ table.insert(result, string.format("Delete \"%s\"", filepath))
elseif kind == "rmdir" then
- table.insert(result, string.format("RMDir /r \"$INSTDIR\\%s\"", cmd.dir))
+ local dir = path.normalize(path.join("$INSTDIR", cmd.dir))
+ table.insert(result, string.format("RMDir /r \"%s\"", dir))
elseif kind == "mv" then
- table.insert(result, string.format("Rename \"$INSTDIR\\%s\" \"$INSTDIR\\%s\"", cmd.srcpath, cmd.dstpath))
+ local srcpath = path.normalize(path.join("$INSTDIR", cmd.srcpath))
+ local dstpath = path.normalize(path.join("$INSTDIR", cmd.dstpath))
+ table.insert(result, string.format("Rename \"%s\" \"%s\"", srcpath, dstpath))
elseif kind == "cd" then
- table.insert(result, string.format("SetOutPath \"$INSTDIR\\%s\"", cmd.dir))
+ local dir = path.normalize(path.join("$INSTDIR", cmd.dir))
+ table.insert(result, string.format("SetOutPath \"%s\"", dir))
elseif kind == "mkdir" then
- table.insert(result, string.format("CreateDirectory \"$INSTDIR\\%s\"", cmd.dir))
+ local dir = path.normalize(path.join("$INSTDIR", cmd.dir))
+ table.insert(result, string.format("CreateDirectory \"%s\"", dir))
end
return result
end
@@ -106,6 +114,12 @@ function _get_installcmds(package)
-- TODO
+ -- install files
+ local srcfiles, dstfiles = package:installfiles(".")
+ for idx, srcfile in ipairs(srcfiles) do
+ batchcmds_:cp(srcfile, dstfiles[idx])
+ end
+
-- get custom install commands
local script = package:script("installcmd")
if script then
@@ -122,6 +136,12 @@ function _get_uninstallcmds(package)
-- TODO
+ -- uninstall files
+ local _, dstfiles = package:installfiles(".")
+ for _, dstfile in ipairs(dstfiles) do
+ batchcmds_:rm(dstfile)
+ end
+
-- get custom uninstall commands
local script = package:script("uninstallcmd")
if script then