Implement mix update script

This commit is contained in:
Nuno Freire
2022-09-01 14:56:28 +01:00
parent d6c83ab9a5
commit 788c3c92b0
6 changed files with 179 additions and 2 deletions

View File

@ -0,0 +1,29 @@
defmodule Mix.Tasks.Heroicons do
@moduledoc """
Invokes heroicons mix utilities.
Usage:
$ mix heroicons
"""
@shortdoc "Invokes heroicons mix utilities"
use Mix.Task
@impl true
def run(args) do
{_opts, args} = OptionParser.parse!(args, strict: [])
case args do
[] -> help()
_ -> Mix.raise("Invalid arguments, expected: mix heroicons")
end
end
defp help() do
Mix.Task.run("app.start")
Mix.shell().info("Heroicons v#{Application.spec(:heroicons, :vsn)}")
Mix.shell().info("Include Heroicons as SVG-strings in your Elixir/Phoenix project!")
Mix.shell().info("\nAvailable tasks:\n")
Mix.Tasks.Help.run(["--search", "heroicons."])
end
end

View File

@ -0,0 +1,22 @@
defmodule Mix.Tasks.Heroicons.Update do
@moduledoc """
Update heroicons.
By default, it downloads the latest version but you
can configure it in your config files, such as:
config :heroicons, :version, "#{Heroicons.latest_version()}"
"""
@shortdoc "Update heroicons assets"
use Mix.Task
@impl true
def run(args) do
{_opts, args} = OptionParser.parse!(args, strict: [])
case args do
[] -> Heroicons.update()
_ -> Mix.raise("Invalid arguments, expected: mix heroicons.update")
end
end
end