#!/usr/bin/env ruby
# frozen_string_literal: true

require_relative "lib/runewarp"

def usage(message = "docker-example <prepare|smoke>")
  Runewarp::Core.usage_error(message)
end

def example_dir
  File.expand_path("../examples/docker", __dir__)
end

def repo_root
  File.expand_path("..", __dir__)
end

def prepare_example(reset_requested:)
  Runewarp::DockerExample.prepare(example_dir: example_dir, repo_root: repo_root, reset_requested: reset_requested)
end

def smoke_example
  Runewarp::DockerExample.smoke(example_dir: example_dir, repo_root: repo_root)
end

Runewarp::Core.run_cli do
  command = ARGV.shift

  case command
  when "prepare"
    reset_requested = ARGV == ["--reset"]
    usage("docker-example <prepare|smoke> [--reset]") unless ARGV.empty? || reset_requested
    prepare_example(reset_requested: reset_requested)
  when "smoke"
    usage unless ARGV.empty?
    smoke_example
  else
    usage
  end
end
