Improve preflight file permissions check (#114)

* Added startup permissions check with more helpful message

* Updated README

* Fixes faulty test
This commit is contained in:
Kieran authored and GitHub committed 2024-03-24 15:06:08 -07:00
1 parent 54eacf52b3
commit a3d0927dfb
7 files changed
+131 -23

No files matched your search

@@ -14,7 +14,6 @@ defmodule Pinchflat.Boot.PreJobStartupTasks do
alias Pinchflat.Repo
alias Pinchflat.Settings
alias Pinchflat.Filesystem.FilesystemHelpers
def start_link(opts \\ []) do
GenServer.start_link(__MODULE__, %{}, opts)
@@ -33,7 +32,6 @@ defmodule Pinchflat.Boot.PreJobStartupTasks do
def init(state) do
reset_executing_jobs()
apply_default_settings()
ensure_directories_are_writeable()
rename_old_job_workers()
{:ok, state}
@@ -56,21 +54,6 @@ defmodule Pinchflat.Boot.PreJobStartupTasks do
Settings.fetch!(:pro_enabled, false)
end
defp ensure_directories_are_writeable do
directories = [
Application.get_env(:pinchflat, :media_directory),
Application.get_env(:pinchflat, :tmpfile_directory),
Application.get_env(:pinchflat, :metadata_directory)
]
Enum.each(directories, fn dir ->
file = Path.join([dir, ".keep"])
# This will fail if the directory is not writeable, stopping boot
FilesystemHelpers.write_p!(file, "")
end)
end
# As part of a large refactor, I ended up moving a bunch of workers around. This
# is a problem because the workers are stored in the database and the runner
# will try to run the OLD jobs. This is also why these tasks run before the job