Sha256: 4955c716be3ce0fde0ec7fa3bbbaa60f592c76c8b683630024d58a49fe81e6f9

Contents?: true

Size: 1.77 KB

Versions: 2

Compression:

Stored size: 1.77 KB

Contents

require 'miu'
require 'thor'

module Miu
  class CLI < ::Thor
    include ::Thor::Actions
    add_runtime_options!

    class << self
      def source_root
        File.expand_path('../../templates', __FILE__)
      end

      def destination_root
        Miu.root
      end
    end

    map ['--version', '-v'] => :version

    desc 'version', 'Show version'
    def version
      say "Miu #{Miu::VERSION}"
    end

    desc 'init', 'Generates a miu configuration files'
    def init
      copy_file 'Gemfile'
      inside 'config' do
        template 'miu.god'
      end
      empty_directory 'log'
      empty_directory 'tmp/pids'
    end

    desc 'list', 'Lists plugins'
    def list
      require 'miu/plugins'
      table = Miu.plugins.map { |k, v| [k, "# #{v}" ] }
      say 'Plugins:'
      print_table table, :indent => 2, :truncate => true
      say
    end

    desc 'start', 'Start miu'
    option 'pub-host', :type => :string, :default => '127.0.0.1', :desc => 'pub host address'
    option 'pub-port', :type => :numeric, :default => Miu.default_pub_port, :desc => 'pub listen port'
    option 'sub-host', :type => :string, :default => '127.0.0.1', :desc => 'sub host address'
    option 'sub-port', :type => :numeric, :default => Miu.default_sub_port, :desc => 'sub listen port'
    def start
      opts = options.dup
      opts.keys.each { |k| opts[k.gsub('-', '_')] = opts.delete(k) if k.is_a?(::String) }
      server = Miu::Server.new opts
      server.run
    end

    desc 'supervise', 'Supervise miu and plugins'
    def supervise
      require 'god'
      run "bundle exec god -c #{Miu.default_god_config}"
    end

    desc 'god', 'Miu is a god'
    def god(*args)
      require 'god'
      args.unshift "bundle exec god -p #{Miu.default_god_port}"
      run args.join(' ')
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
miu-0.0.6 lib/miu/cli.rb
miu-0.0.5 lib/miu/cli.rb