diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2024-02-19 11:23:41 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2024-02-19 11:23:41 -0300 |
commit | c23f6a5be7fe54f204bb6d327dfd802225bbc9b7 (patch) | |
tree | 5e7a07e808f5705d7ef80f3890ab701cc0a4aa76 | |
parent | 272921b2adf6136448dda9011425f8304c9d508d (diff) | |
download | luarocks-fix-1261.tar.gz luarocks-fix-1261.tar.bz2 luarocks-fix-1261.zip |
fix(config): ensure directory exists when saving config filefix-1261
Fixes #1261.
-rw-r--r-- | src/luarocks/cmd/config.lua | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/luarocks/cmd/config.lua b/src/luarocks/cmd/config.lua index 3b100429..0e7a3e3d 100644 --- a/src/luarocks/cmd/config.lua +++ b/src/luarocks/cmd/config.lua | |||
@@ -175,7 +175,9 @@ local function write_entries(keys, scope, do_unset) | |||
175 | return nil, "Current directory is not part of a project. You may want to run `luarocks init`." | 175 | return nil, "Current directory is not part of a project. You may want to run `luarocks init`." |
176 | end | 176 | end |
177 | 177 | ||
178 | local tbl, err = persist.load_config_file_if_basic(cfg.config_files[scope].file, cfg) | 178 | local file_name = cfg.config_files[scope].file |
179 | |||
180 | local tbl, err = persist.load_config_file_if_basic(file_name, cfg) | ||
179 | if not tbl then | 181 | if not tbl then |
180 | return nil, err | 182 | return nil, err |
181 | end | 183 | end |
@@ -205,7 +207,12 @@ local function write_entries(keys, scope, do_unset) | |||
205 | end) | 207 | end) |
206 | end | 208 | end |
207 | 209 | ||
208 | local ok, err = persist.save_from_table(cfg.config_files[scope].file, tbl) | 210 | local ok, err = fs.make_dir(dir.dir_name(file_name)) |
211 | if not ok then | ||
212 | return nil, err | ||
213 | end | ||
214 | |||
215 | ok, err = persist.save_from_table(file_name, tbl) | ||
209 | if ok then | 216 | if ok then |
210 | print(do_unset and "Removed" or "Wrote") | 217 | print(do_unset and "Removed" or "Wrote") |
211 | for var, val in util.sortedpairs(keys) do | 218 | for var, val in util.sortedpairs(keys) do |
@@ -216,7 +223,7 @@ local function write_entries(keys, scope, do_unset) | |||
216 | end | 223 | end |
217 | end | 224 | end |
218 | print(do_unset and "from" or "to") | 225 | print(do_unset and "from" or "to") |
219 | print("\t" .. cfg.config_files[scope].file) | 226 | print("\t" .. file_name) |
220 | return true | 227 | return true |
221 | else | 228 | else |
222 | return nil, err | 229 | return nil, err |