defmodule Mix.Tasks.Stevedore.Delete do
@shortdoc "Delete a manifest by tag or digest"
@moduledoc """
Delete a manifest from a transport.
mix stevedore.delete REF [--scheme http|https]
"""
use Mix.Task
alias Stevedore.CLI
@switches [scheme: :string]
@impl true
def run(argv) do
{opts, args, _} = OptionParser.parse(argv, switches: @switches)
case args do
[ref] ->
CLI.start_app()
CLI.unwrap!(Stevedore.delete(ref, Keyword.take(opts, [:scheme])))
Mix.shell().info("deleted #{ref}")
_ ->
Mix.raise("usage: mix stevedore.delete REF")
end
end
end