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 |
