summaryrefslogtreecommitdiff
path: root/src/luarocks/build/command.lua
diff options
context:
space:
mode:
authorMike Vink <mike@pionative.com>2025-02-03 21:29:42 +0100
committerMike Vink <mike@pionative.com>2025-02-03 21:29:42 +0100
commit5155816b7b925dec5d5feb1568b1d7ceb00938b9 (patch)
treedeca28ea15e79f6f804c3d90d2ba757881638af5 /src/luarocks/build/command.lua
fetch tarballHEADmaster
Diffstat (limited to 'src/luarocks/build/command.lua')
-rw-r--r--src/luarocks/build/command.lua41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/luarocks/build/command.lua b/src/luarocks/build/command.lua
new file mode 100644
index 0000000..b0c4aa7
--- /dev/null
+++ b/src/luarocks/build/command.lua
@@ -0,0 +1,41 @@
+
+--- Build back-end for raw listing of commands in rockspec files.
+local command = {}
+
+local fs = require("luarocks.fs")
+local util = require("luarocks.util")
+local cfg = require("luarocks.core.cfg")
+
+--- Driver function for the "command" build back-end.
+-- @param rockspec table: the loaded rockspec.
+-- @return boolean or (nil, string): true if no errors occurred,
+-- nil and an error message otherwise.
+function command.run(rockspec, not_install)
+ assert(rockspec:type() == "rockspec")
+
+ local build = rockspec.build
+
+ util.variable_substitutions(build, rockspec.variables)
+
+ local env = {
+ CC = cfg.variables.CC,
+ --LD = cfg.variables.LD,
+ --CFLAGS = cfg.variables.CFLAGS,
+ }
+
+ if build.build_command then
+ util.printout(build.build_command)
+ if not fs.execute_env(env, build.build_command) then
+ return nil, "Failed building."
+ end
+ end
+ if build.install_command and not not_install then
+ util.printout(build.install_command)
+ if not fs.execute_env(env, build.install_command) then
+ return nil, "Failed installing."
+ end
+ end
+ return true
+end
+
+return command