aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2019-03-14 23:22:50 -0300
committerHisham Muhammad <hisham@gobolinux.org>2019-04-09 16:49:20 -0300
commitf644e99c2db3eafd0658c9d68dd39a544d4b6617 (patch)
tree2cbd6c50a641fdddc64decc90662ead8987d2b31 /src
parenta21fcdc434f7135b3be215bbab5ad08f1873d300 (diff)
downloadluarocks-f644e99c2db3eafd0658c9d68dd39a544d4b6617.tar.gz
luarocks-f644e99c2db3eafd0658c9d68dd39a544d4b6617.tar.bz2
luarocks-f644e99c2db3eafd0658c9d68dd39a544d4b6617.zip
init: rewrite project config when it's safe to do so
Diffstat (limited to 'src')
-rw-r--r--src/luarocks/cmd/init.lua32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/luarocks/cmd/init.lua b/src/luarocks/cmd/init.lua
index 3b8c9fea..7da2122c 100644
--- a/src/luarocks/cmd/init.lua
+++ b/src/luarocks/cmd/init.lua
@@ -7,6 +7,7 @@ local path = require("luarocks.path")
7local deps = require("luarocks.deps") 7local deps = require("luarocks.deps")
8local dir = require("luarocks.dir") 8local dir = require("luarocks.dir")
9local util = require("luarocks.util") 9local util = require("luarocks.util")
10local persist = require("luarocks.persist")
10local write_rockspec = require("luarocks.cmd.write_rockspec") 11local write_rockspec = require("luarocks.cmd.write_rockspec")
11 12
12init.help_summary = "Initialize a directory for a Lua project using LuaRocks." 13init.help_summary = "Initialize a directory for a Lua project using LuaRocks."
@@ -63,7 +64,7 @@ function init.command(flags, name, version)
63 end 64 end
64 end 65 end
65 66
66 util.printout("Initializing project " .. name .. " ...") 67 util.printout("Initializing project " .. name .. " for Lua " .. cfg.lua_version .. " ...")
67 68
68 local has_rockspec = false 69 local has_rockspec = false
69 for file in fs.dir() do 70 for file in fs.dir() do
@@ -101,16 +102,19 @@ function init.command(flags, name, version)
101 util.printout("Preparing ./.luarocks/ ...") 102 util.printout("Preparing ./.luarocks/ ...")
102 fs.make_dir(".luarocks") 103 fs.make_dir(".luarocks")
103 local config_file = ".luarocks/config-" .. cfg.lua_version .. ".lua" 104 local config_file = ".luarocks/config-" .. cfg.lua_version .. ".lua"
104 if not fs.exists(config_file) then 105
105 local fd = io.open(config_file, "w") 106 local config_tbl, err = persist.load_config_file_if_basic(config_file, cfg)
106 fd:write("-- LuaRocks configuration for use with Lua " .. cfg.lua_version .. "\n") 107 if config_tbl then
107 if cfg.lua_interpreter then 108 local globals = {
108 fd:write(("lua_interpreter = %q\n"):format(cfg.lua_interpreter)) 109 "lua_interpreter",
109 end 110 "luajit_version",
110 if cfg.luajit_version then 111 }
111 fd:write(("luajit_version = %q\n"):format(cfg.luajit_version)) 112 for _, v in ipairs(globals) do
113 if cfg[v] then
114 config_tbl[v] = cfg[v]
115 end
112 end 116 end
113 fd:write("variables = {\n") 117
114 local varnames = { 118 local varnames = {
115 "LUA_DIR", 119 "LUA_DIR",
116 "LUA_INCDIR", 120 "LUA_INCDIR",
@@ -120,13 +124,13 @@ function init.command(flags, name, version)
120 } 124 }
121 for _, varname in ipairs(varnames) do 125 for _, varname in ipairs(varnames) do
122 if cfg.variables[varname] then 126 if cfg.variables[varname] then
123 fd:write((" %s = %q,\n"):format(varname, cfg.variables[varname])) 127 config_tbl.variables = config_tbl.variables or {}
128 config_tbl.variables[varname] = cfg.variables[varname]
124 end 129 end
125 end 130 end
126 fd:write("}\n") 131 local ok, err = persist.save_from_table(config_file, config_tbl)
127 fd:close()
128 else 132 else
129 util.printout(config_file .. " already exists. Not overwriting it!") 133 util.printout("Will not attempt to overwrite " .. config_file)
130 end 134 end
131 135
132 util.printout("Preparing ./lua_modules/ ...") 136 util.printout("Preparing ./lua_modules/ ...")