Current section
Files
Jump to
Current section
Files
lib/mix/tasks/snakebridge/clean.ex
defmodule Mix.Tasks.Snakebridge.Clean do
@moduledoc """
Clean SnakeBridge cache and generated files.
## Usage
mix snakebridge.clean [OPTIONS]
## Options
* `--all` - Remove config files in addition to caches
## Examples
# Clean caches only
mix snakebridge.clean
# Clean everything including configs
mix snakebridge.clean --all
"""
@shortdoc "Clean SnakeBridge caches"
use Mix.Task
@impl Mix.Task
def run(args) do
{opts, _, _} = OptionParser.parse(args, strict: [all: :boolean])
clean_all? = Keyword.get(opts, :all, false)
Mix.shell().info("Cleaning SnakeBridge caches...")
# Clean cache directory
cache_dir = Application.get_env(:snakebridge, :cache_path, "priv/snakebridge/cache")
if File.exists?(cache_dir) do
File.rm_rf!(cache_dir)
Mix.shell().info("✓ Removed cache directory: #{cache_dir}")
end
# Clean in-memory cache if app is running
if Process.whereis(SnakeBridge.Cache) do
SnakeBridge.Cache.clear_all()
Mix.shell().info("✓ Cleared in-memory cache")
end
# Optionally clean config files
if clean_all? do
if File.exists?("config/snakebridge") do
File.rm_rf!("config/snakebridge")
Mix.shell().info("✓ Removed config directory: config/snakebridge")
end
end
Mix.shell().info("")
Mix.shell().info("Clean complete!")
end
end