diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2019-03-14 23:22:50 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2019-04-09 16:49:20 -0300 |
commit | f644e99c2db3eafd0658c9d68dd39a544d4b6617 (patch) | |
tree | 2cbd6c50a641fdddc64decc90662ead8987d2b31 /src | |
parent | a21fcdc434f7135b3be215bbab5ad08f1873d300 (diff) | |
download | luarocks-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.lua | 32 |
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") | |||
7 | local deps = require("luarocks.deps") | 7 | local deps = require("luarocks.deps") |
8 | local dir = require("luarocks.dir") | 8 | local dir = require("luarocks.dir") |
9 | local util = require("luarocks.util") | 9 | local util = require("luarocks.util") |
10 | local persist = require("luarocks.persist") | ||
10 | local write_rockspec = require("luarocks.cmd.write_rockspec") | 11 | local write_rockspec = require("luarocks.cmd.write_rockspec") |
11 | 12 | ||
12 | init.help_summary = "Initialize a directory for a Lua project using LuaRocks." | 13 | init.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/ ...") |