Integrate mkdirp function in common module (#265)
Move the function mkdirp into common to be generally available. Use the new common.mkdirp from create_user_directory() from core/init.lua replacing previous parent directory creation code within the function. The previous mkdirp function did not work on Windows where absolute paths starts with a drive letter. The code from create_user_directory() did not have this problem but was wrong in the way it was creating the nested directories. The new implementation in common.mkdirp fix both problems.
This commit is contained in:
+4
-17
@@ -276,25 +276,12 @@ end
|
||||
-- create a directory using mkdir but may need to create the parent
|
||||
-- directories as well.
|
||||
local function create_user_directory()
|
||||
local dirname_create = USERDIR
|
||||
local basedir
|
||||
local subdirs = {}
|
||||
while dirname_create and dirname_create ~= "" do
|
||||
local success_mkdir = system.mkdir(dirname_create)
|
||||
if success_mkdir then break end
|
||||
dirname_create, basedir = dirname_create:match("(.*)[/\\](.+)$")
|
||||
if basedir then
|
||||
subdirs[#subdirs + 1] = basedir
|
||||
end
|
||||
end
|
||||
for _, dirname in ipairs(subdirs) do
|
||||
dirname_create = dirname_create .. '/' .. dirname
|
||||
if not system.mkdir(dirname_create) then
|
||||
error("cannot create directory: \"" .. dirname_create .. "\"")
|
||||
end
|
||||
local success, err = common.mkdirp(USERDIR)
|
||||
if not success then
|
||||
error("cannot create directory \"" .. USERDIR .. "\": " .. err)
|
||||
end
|
||||
for _, modname in ipairs {'plugins', 'colors', 'fonts'} do
|
||||
local subdirname = dirname_create .. '/' .. modname
|
||||
local subdirname = USERDIR .. PATHSEP .. modname
|
||||
if not system.mkdir(subdirname) then
|
||||
error("cannot create directory: \"" .. subdirname .. "\"")
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user