#!/usr/bin/env ruby # frozen_string_literal: true require 'slop' require_relative '../lib/runger_release_assistant.rb' slop_options = Slop.parse do |o| o.banner = <<~BANNER Usage: release [options] Example: release release --type minor release -t patch BANNER RungerReleaseAssistant.define_slop_options(o) o.on('-i', '--init', 'create a `.release_assistant.yml` config file') do File.write( '.release_assistant.yml', YAML.dump(RungerReleaseAssistant::DEFAULT_OPTIONS.stringify_keys), ) puts("Created #{'.release_assistant.yml'.green.bold}!") exit end o.on('-v', '--version', 'print the version') do puts(RungerReleaseAssistant::VERSION) exit end o.on('-h', '--help', 'print this help information') do puts(o) exit end end config_file_options = RungerReleaseAssistant::ConfigFileReader.new.options_hash RungerReleaseAssistant.new( RungerReleaseAssistant::DEFAULT_OPTIONS. merge(config_file_options). merge(slop_options.to_h), ).run_release