fix(fs): handle File.mkdir_p errors and remove bang variants in sidecars and release packaging (CSM-030)
This commit is contained in:
@@ -18,10 +18,9 @@ defmodule BDS.Media.Sidecars do
|
||||
alias BDS.Search
|
||||
alias BDS.Sidecar
|
||||
|
||||
@spec write_sidecar(BDS.Projects.Project.t(), Media.t()) :: :ok
|
||||
@spec write_sidecar(BDS.Projects.Project.t(), Media.t()) :: :ok | {:error, File.posix()}
|
||||
def write_sidecar(project, media) do
|
||||
path = Path.join(Projects.project_data_dir(project), media.sidecar_path)
|
||||
:ok = File.mkdir_p(Path.dirname(path))
|
||||
|
||||
atomic_write(
|
||||
path,
|
||||
@@ -45,7 +44,8 @@ defmodule BDS.Media.Sidecars do
|
||||
)
|
||||
end
|
||||
|
||||
@spec write_translation_sidecar(BDS.Projects.Project.t(), Media.t(), Translation.t()) :: :ok
|
||||
@spec write_translation_sidecar(BDS.Projects.Project.t(), Media.t(), Translation.t()) ::
|
||||
:ok | {:error, File.posix()}
|
||||
def write_translation_sidecar(project, media, translation) do
|
||||
path =
|
||||
Path.join(
|
||||
@@ -53,8 +53,6 @@ defmodule BDS.Media.Sidecars do
|
||||
translation_sidecar_path(media, translation.language)
|
||||
)
|
||||
|
||||
:ok = File.mkdir_p(Path.dirname(path))
|
||||
|
||||
atomic_write(
|
||||
path,
|
||||
Sidecar.serialize_document([
|
||||
@@ -189,8 +187,7 @@ defmodule BDS.Media.Sidecars do
|
||||
|
||||
media ->
|
||||
project = Projects.get_project!(media.project_id)
|
||||
:ok = write_sidecar(project, media)
|
||||
:ok
|
||||
write_sidecar(project, media)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -224,8 +221,11 @@ defmodule BDS.Media.Sidecars do
|
||||
%Translation{} = translation ->
|
||||
media = Repo.get!(Media, translation.translation_for)
|
||||
project = Projects.get_project!(media.project_id)
|
||||
:ok = write_translation_sidecar(project, media, translation)
|
||||
{:ok, translation}
|
||||
|
||||
case write_translation_sidecar(project, media, translation) do
|
||||
:ok -> {:ok, translation}
|
||||
{:error, reason} -> {:error, reason}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user