Added startup task to create user script file

This commit is contained in:
Kieran Eglin 2024-05-01 10:42:50 -07:00
parent 9b4b09efb7
commit 3203e246d8
No known key found for this signature in database
GPG key ID: 193984967FCF432D
2 changed files with 37 additions and 0 deletions

View file

@ -33,6 +33,7 @@ defmodule Pinchflat.Boot.PreJobStartupTasks do
def init(state) do def init(state) do
reset_executing_jobs() reset_executing_jobs()
create_blank_yt_dlp_files() create_blank_yt_dlp_files()
create_blank_user_script_file()
apply_default_settings() apply_default_settings()
{:ok, state} {:ok, state}
@ -65,6 +66,18 @@ defmodule Pinchflat.Boot.PreJobStartupTasks do
end) end)
end end
defp create_blank_user_script_file do
base_dir = Application.get_env(:pinchflat, :extras_directory)
filepath = Path.join([base_dir, "user-scripts", "lifecycle"])
if !File.exists?(filepath) do
Logger.info("Creating blank file and making it executable: #{filepath}")
FilesystemUtils.write_p!(filepath, "")
File.chmod(filepath, 0o755)
end
end
defp apply_default_settings do defp apply_default_settings do
{:ok, yt_dlp_version} = yt_dlp_runner().version() {:ok, yt_dlp_version} = yt_dlp_runner().version()
{:ok, apprise_version} = apprise_runner().version() {:ok, apprise_version} = apprise_runner().version()

View file

@ -53,6 +53,30 @@ defmodule Pinchflat.Boot.PreJobStartupTasksTest do
end end
end end
describe "create_blank_user_script_file" do
test "creates a blank script file" do
base_dir = Application.get_env(:pinchflat, :extras_directory)
filepath = Path.join([base_dir, "user-scripts", "lifecycle"])
File.rm(filepath)
refute File.exists?(filepath)
PreJobStartupTasks.init(%{})
assert File.exists?(filepath)
end
test "gives it 755 permissions" do
base_dir = Application.get_env(:pinchflat, :extras_directory)
filepath = Path.join([base_dir, "user-scripts", "lifecycle"])
File.rm(filepath)
PreJobStartupTasks.init(%{})
assert File.stat!(filepath).mode == 0o100755
end
end
describe "apply_default_settings" do describe "apply_default_settings" do
test "sets yt_dlp version" do test "sets yt_dlp version" do
Settings.set(yt_dlp_version: nil) Settings.set(yt_dlp_version: nil)