From b2593b4f6a69575a6c657a33032a17fceb409c9d Mon Sep 17 00:00:00 2001
From: Hisham <hisham@gobolinux.org>
Date: Wed, 8 Feb 2017 02:41:29 -0200
Subject: Make sure target directory exists when saving API config. Closes
 #676.

---
 src/luarocks/upload/api.lua | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/luarocks/upload/api.lua b/src/luarocks/upload/api.lua
index ad6d45e8..99162e75 100644
--- a/src/luarocks/upload/api.lua
+++ b/src/luarocks/upload/api.lua
@@ -3,6 +3,7 @@ local api = {}
 
 local cfg = require("luarocks.core.cfg")
 local fs = require("luarocks.fs")
+local dir = require("luarocks.dir")
 local util = require("luarocks.util")
 local persist = require("luarocks.persist")
 local multipart = require("luarocks.upload.multipart")
@@ -36,6 +37,10 @@ function Api:save_config()
    end
    local upload_conf = upload_config_file()
    if not upload_conf then return nil end
+   local ok, err = fs.make_dir(dir.dir_name(upload_conf))
+   if not ok then
+      return nil, err
+   end
    persist.save_from_table(upload_conf, self.config)
    fs.chmod(upload_conf, "0600")
 end
-- 
cgit v1.2.3-55-g6feb