class S3WebsiteDeploy::CLI

Public Class Methods

parse_argv(argv) click to toggle source
# File lib/s3_website_deploy/cli.rb, line 11
def self.parse_argv(argv)
  opts = {}
  parser = OptionParser.new
  parser.on("-c [CONFIG]", "--config", "config YAML") {|v| opts["config"] = v }
  parser.on("-s [SOURCE]", "--source", "source directory") {|v| opts["source"] = v }
  parser.on("-r [REGION]", "--region", "target region") {|v| opts["region"] = v }
  parser.on("-b [BUCKET]", "--bucket", "target bucket") {|v| opts["bucket"] = v }
  parser.on("-p [PREFIX]", "--prefix", "target prefix") {|v| opts["prefix"] = v }
  parser.on("--cache-policy POLICY", "cache policy") {|v| opts["cache-policy"] = JSON.parse(v) if v }
  parser.on("-n", "--dry-run", "dry run") {|v| opts["dryrun"] = v }
  parser.parse(argv)

  file_opts = opts["config"] ? YAML.load_file(opts["config"]) : {}
  source = (opts["source"] || file_opts["source"]) or raise ArgumentError, "--source is required"
  region = (opts["region"] || file_opts["region"] || ENV["AWS_DEFAULT_REGION"]) or raise ArgumentError, "--region is required"
  bucket = (opts["bucket"] || file_opts["bucket"]) or raise ArgumentError, "--bucket is required"
  prefix = opts["prefix"] || file_opts["prefix"] || ""
  cache_policy = opts["cache-policy"] || file_opts["cache_policy"] || {}
  dryrun = opts["dryrun"]

  S3WebsiteDeploy::Configuration.new(source: source, region: region, bucket: bucket, prefix: prefix, cache_policy: cache_policy, dryrun: dryrun)
end
run(argv) click to toggle source
# File lib/s3_website_deploy/cli.rb, line 6
def self.run(argv)
  config = parse_argv(argv)
  S3WebsiteDeploy::Client.new(config).run
end