Sha256: 0e1fed40fd5208d092b04df99540c6691cb9e93b9f446b5d95237d4770d42d65

Contents?: true

Size: 996 Bytes

Versions: 6

Compression:

Stored size: 996 Bytes

Contents

require 'canals'
require 'canals/options'
require 'canals/environment'
require 'thor'

module Canals
  module Cli
    class List < Thor
      include Thor::Actions

      desc 'environments', 'List the different environments'
      def environments
        envs = Canals.environments.map{ |conf| conf.name }
        say envs.sort.join " "
      end

      desc 'tunnels', 'List the different tunnels'
      def tunnels
        tunnels = Canals.repository.map{ |conf| conf.name }
        say tunnels.sort.join " "
      end

      desc 'commands', 'List all the base level commands'
      def commands(subcommand=nil)
        thor_class = Canals::Cli::Application
        if !subcommand.nil?
          thor_class = thor_class.subcommand_classes[subcommand]
          if thor_class.nil?
            return
          end
        end

        cmds = thor_class.all_commands.values.select{ |c| c.class == Thor::Command }.map{ |c| c.name }
        say cmds.sort.join " "
      end

    end
  end
end


Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
canals-0.8.7 lib/canals/cli/list.rb
canals-0.8.6 lib/canals/cli/list.rb
canals-0.8.5 lib/canals/cli/list.rb
canals-0.8.4 lib/canals/cli/list.rb
canals-0.8.3 lib/canals/cli/list.rb
canals-0.8.2 lib/canals/cli/list.rb