Current section

Files

Jump to
ex_azure_key_vault lib mix tasks version.ex
Raw

lib/mix/tasks/version.ex

defmodule Mix.Tasks.Version do
use Mix.Task
@impl Mix.Task
def run(args) do
version = Enum.at(args, 0)
description = Regex.replace(~r/\\n/, Enum.at(args, 1), "\n")
Mix.shell().info("Updating DOCS...")
{:ok, docs} = File.read("DOCS.md")
File.write("DOCS.md", Regex.replace(~r/{:ex_azure_key_vault, "~> (.*)"}/, docs, "{:ex_azure_key_vault, \"~> #{version}\"}"))
Mix.shell().info("DOCS updated!")
Mix.shell().info("")
Mix.shell().info("Updating README...")
{:ok, readme} = File.read("README.md")
File.write("README.md", Regex.replace(~r/{:ex_azure_key_vault, "~> (.*)"}/, readme, "{:ex_azure_key_vault, \"~> #{version}\"}"))
Mix.shell().info("README updated!")
Mix.shell().info("")
Mix.shell().info("Updating mix.exs...")
{:ok, mix_exs} = File.read("mix.exs")
File.write("mix.exs", Regex.replace(~r/@version "(.*)"/, mix_exs, "@version \"#{version}\""))
Mix.shell().info("mix.exs updated!")
Mix.shell().info("")
Mix.shell().info("Updating CHANGELOG...")
{:ok, changelog} = File.read("CHANGELOG.md")
changelog = Regex.replace(~r/# Changelog\n/, changelog, "")
updated_changelog = "# Changelog\n\n## #{version}\n\n#{description}\n#{changelog}"
File.write("CHANGELOG.md", updated_changelog)
Mix.shell().info("CHANGELOG updated!")
end
end