# frozen_string_literal: true require "thor" module Groundskeeper # Bootstrap this as a Thor application. class Application < Thor include Thor::Actions attr_reader :commands class_option :simulate, desc: "Simulate mina" class_option :verbose, desc: "Run groundskeeper verbosely", aliases: :v, type: :boolean def initialize(args = [], local_options = {}, config = {}) @commands = Commands.build(self) super end desc "info", "Display revision info" def info commands.info options end desc "release", "create a new release" def release commands.info options commands.release options end # :nocov: desc "predeploy", "create configuration files for the project" option :nginx, type: :boolean def predeploy commands.info options commands.predeploy options end # :nocov: # :nocov: desc "deploy", "deploy the latest release" def deploy commands.info options commands.deploy options end # :nocov: end end