Sha256: b31b9a055700c7c6f76bb54331197f88b89e7517017371f40305f41e9a367175

Contents?: true

Size: 1.44 KB

Versions: 7

Compression:

Stored size: 1.44 KB

Contents

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

$LOAD_PATH.unshift __dir__ + "/../../lib"
require "dry/cli"
require_relative "../../../lib/dry/cli/command"

module Based
  extend Dry::CLI::Registry

  class Base < Dry::CLI::Command
    desc "Base description"
    argument :app, desc: "Application name", type: :string, required: true
    option :verbosity, desc: "Verbosity level", type: :string, default: "INFO"

    example "Base example"

    def call(app:, **options)
      puts "#{self.class} - App: #{app} - Options: #{options.inspect}"
    end
  end

  class Run < Base
    desc "Run a one-off process inside your app"
    argument :cmd, desc: "Command to execute", required: true

    def call(app:, cmd:, **options)
      puts "Run - App: #{app} - Command: #{cmd} - Options: #{options.inspect}"
    end
  end

  class SubRun < Run
  end

  class Logs < Base
    desc "Display recent log output"

    option :num, desc: "number of lines to display"
    option :tail, desc: "continually stream log", type: :boolean

    example [
      "APP_NAME",
      "APP_NAME --num=50",
      "APP_NAME --tail"
    ]
  end

  class Addons < Base
    desc "Lists your add-ons and attachments"

    option :json, desc: "return add-ons in json format", type: :boolean, default: false

    example [
      "APP_NAME",
      "APP_NAME --json"
    ]
  end

  register "run", Run
  register "subrun", SubRun
  register "logs", Logs
  register "addons", Addons
end

Dry.CLI(Based).call

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rfix-3.0.1 vendor/dry-cli/spec/support/fixtures/based
rfix-3.0.0 vendor/dry-cli/spec/support/fixtures/based
rfix-2.0.4 vendor/dry-cli/spec/support/fixtures/based
rfix-2.0.3 vendor/dry-cli/spec/support/fixtures/based
rfix-2.0.2 vendor/dry-cli/spec/support/fixtures/based
rfix-2.0.1 vendor/dry-cli/spec/support/fixtures/based
rfix-2.0.0 vendor/dry-cli/spec/support/fixtures/based