diff --git a/lib/mix/tasks/sqlean/release.ex b/lib/mix/tasks/sqlean/release.ex index f8a9f320..a764a2e6 100644 --- a/lib/mix/tasks/sqlean/release.ex +++ b/lib/mix/tasks/sqlean/release.ex @@ -12,25 +12,21 @@ defmodule Mix.Tasks.Sqlean.Release do end def fetch_current_version do + version_file() + |> File.read!() + |> String.trim() + end + + def version_file do Application.app_dir(:music_library, [ "priv", "sqlite_extensions", "VERSION" ]) - |> File.read!() - |> String.trim() end - def update_config_file!(config_file, current_version, latest_version) do - config_contents = File.read!(config_file) - - new_config_contents = - String.replace( - config_contents, - ~s(version: "#{current_version}"), - "version: \"#{latest_version}\"" - ) - - File.write!(config_file, new_config_contents) + def update_version_file!(version) do + version_file() + |> File.write!(version) end end diff --git a/lib/mix/tasks/sqlean/update_version.ex b/lib/mix/tasks/sqlean/update_version.ex new file mode 100644 index 00000000..ab93fc82 --- /dev/null +++ b/lib/mix/tasks/sqlean/update_version.ex @@ -0,0 +1,26 @@ +defmodule Mix.Tasks.Sqlean.UpdateVersion do + @shortdoc "Update the configured Sqlean versino to latest." + @moduledoc """ + Update the configured sqlean versions to latest. + """ + + use Mix.Task + + alias Mix.Tasks.Sqlean.Release + + @impl Mix.Task + def run(_args) do + current_version = Release.fetch_current_version() + latest_version = Release.fetch_latest_version!() + + if current_version === latest_version do + Mix.Shell.IO.info("Sqlean extensions configuration is up to date (#{current_version})") + else + Mix.Shell.IO.info( + "Updating Sqlean extensions configuration from #{current_version} to #{latest_version}" + ) + + Release.update_version_file!(latest_version) + end + end +end diff --git a/priv/sqlite_extensions/VERSION b/priv/sqlite_extensions/VERSION index 697f087f..022a0337 100644 --- a/priv/sqlite_extensions/VERSION +++ b/priv/sqlite_extensions/VERSION @@ -1 +1 @@ -0.28.0 +0.28.0 \ No newline at end of file