DataStorage: create parent config home if it doesn't exist yet (#10382)

This situation might potentially occur in something like a Docker/Podman container or WSL.

Fixes #10380.
reviewable/pr10389/r1
Frans de Jonge 1 year ago committed by GitHub
parent 1102c030fa
commit 2f7923c513
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -20,15 +20,22 @@ function DataStorage:getDataDir()
elseif os.getenv("APPIMAGE") or os.getenv("KO_MULTIUSER") then
if os.getenv("XDG_CONFIG_HOME") then
data_dir = string.format("%s/%s", os.getenv("XDG_CONFIG_HOME"), "koreader")
if lfs.attributes(os.getenv("XDG_CONFIG_HOME"), "mode") ~= "directory" then
lfs.mkdir(os.getenv("XDG_CONFIG_HOME"))
end
else
local user_rw = jit.os == "OSX" and "Library/Application Support" or ".config"
if lfs.attributes(user_rw, "mode") ~= "directory" then
lfs.mkdir(user_rw)
end
data_dir = string.format("%s/%s/%s", os.getenv("HOME"), user_rw, "koreader")
end
else
data_dir = "."
end
if lfs.attributes(data_dir, "mode") ~= "directory" then
lfs.mkdir(data_dir)
local ok, err = lfs.mkdir(data_dir)
if not ok then error(err) end
end
return data_dir

Loading…
Cancel
Save