Current section
Files
Jump to
Current section
Files
lib/mix/tasks/blitz.test_state.prune.ex
defmodule Mix.Tasks.Blitz.TestState.Prune do
use Mix.Task
alias Blitz.TestState.Store
@moduledoc """
Prune compact Blitz test-state artifacts.
Usage:
mix blitz.test_state.prune
mix blitz.test_state.prune --store-dir /tmp/blitz-test-state
"""
@shortdoc "Prune compact Blitz test-state artifacts"
@impl Mix.Task
def run(args) do
{opts, positional, invalid} =
OptionParser.parse(args,
strict: [
store_dir: :string,
root: :string
]
)
validate_invalid!(invalid)
validate_positional!(positional)
root = opts[:root] || File.cwd!()
store = Store.new(root, opts)
Store.prune!(store)
Mix.shell().info("Pruned Blitz test state at #{store.root}")
after
Mix.Task.reenable("blitz.test_state.prune")
end
defp validate_invalid!([]), do: :ok
defp validate_invalid!(invalid) do
Mix.raise("Invalid options: #{inspect(invalid)}")
end
defp validate_positional!([]), do: :ok
defp validate_positional!(positional) do
Mix.raise("Unexpected arguments: #{Enum.join(positional, " ")}")
end
end