lib/napa/cli.rb in napa-0.4.1 vs lib/napa/cli.rb in napa-0.4.3
- old
+ new
@@ -1,96 +1,10 @@
require 'thor'
-require 'napa/generators'
-require 'napa/deploy'
-require 'napa/version'
+require "napa/cli/base"
+require 'napa/cli/generate'
Napa.load_environment if defined?(Dotenv)
module Napa
- class CLI
- class Generate < Thor
- register(
- Generators::ApiGenerator,
- 'api',
- 'api <api_name>',
- 'Create a Grape API, Model and Entity'
- )
-
- register(
- Generators::MigrationGenerator,
- 'migration',
- 'migration <migration_name> [field[:type][:index] field[:type][:index]]',
- 'Create a Database Migration'
- )
-
- register(
- Generators::ReadmeGenerator,
- 'readme',
- 'readme',
- 'Create a formatted README'
- )
- end
- end
-
- class CLI
- class Base < Thor
- desc "version", "Shows the Napa version number"
- def version
- say Napa::VERSION
- end
-
- desc 'console [environment]', 'Start the Napa console'
- options aliases: 'c'
- def console(environment = nil)
- ENV['RACK_ENV'] = environment || 'development'
-
- require 'racksh/init'
-
- begin
- require "pry"
- interpreter = Pry
- rescue LoadError
- require "irb"
- require "irb/completion"
- interpreter = IRB
- # IRB uses ARGV and does not expect these arguments.
- ARGV.delete('console')
- ARGV.delete(environment) if environment
- end
-
- Rack::Shell.init
-
- $0 = "#{$0} console"
- interpreter.start
- end
-
- desc 'deploy [target]', 'Deploys A Service to a given target (i.e. production, staging, etc.)'
- method_options :force => :boolean, :revision => :string, :confirm => :boolean
- def deploy(environment)
- if options[:confirm] || yes?('Are you sure you want to deploy this service?', Thor::Shell::Color::YELLOW)
- deploy = Napa::Deploy.new(environment, force: options[:force], revision: options[:revision])
- if deploy.deployable?
- say(deploy.deploy!, Thor::Shell::Color::GREEN)
- else
- say("Deploy Failed:\n#{deploy.errors.join("\n")}", Thor::Shell::Color::RED)
- end
- end
- end
-
- register(
- Generators::ScaffoldGenerator,
- 'new',
- 'new <app_name> [app_path]',
- 'Create a scaffold for a new Napa service'
- )
-
- desc "generate api <api_name>", "Create a Grape API, Model and Representer"
- subcommand "generate api", Napa::CLI::Generate
-
- desc "generate migration <migration_name> [field[:type][:index] field[:type][:index]]", "Create a Database Migration"
- subcommand "generate", Napa::CLI::Generate
-
- desc "generate readme", "Create a formatted README"
- subcommand "generate readme", Napa::CLI::Generate
- end
+ module CLI
end
end