lib/middleman-cli.rb in middleman-cli-4.0.0.alpha.5 vs lib/middleman-cli.rb in middleman-cli-4.0.0.alpha.6
- old
+ new
@@ -4,84 +4,21 @@
libdir = File.expand_path(File.dirname(__FILE__))
$LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
# Require Thor since that's what the whole CLI is built around
require 'thor'
-require 'thor/group'
# CLI Module
-module Middleman
- module Cli
- # The base task from which everything else extends
- class Base < Thor
- class << self
- def start(*args)
- # Change flag to a module
- ARGV.unshift('help') if ARGV.delete('--help')
+module Middleman::Cli
+ # The base task from which everything else extends
+ class Base < ::Thor
+ desc 'version', 'Show version'
+ def version
+ say "Middleman #{Middleman::VERSION}"
+ end
- # Default command is server
- if ARGV[0] != 'help' && (ARGV.length < 1 || ARGV.first.include?('-'))
- ARGV.unshift('server')
- end
-
- super
- end
- end
-
- desc 'version', 'Show version'
- def version
- say "Middleman #{Middleman::VERSION}"
- end
-
- desc 'help', 'Show help'
-
- # Override the Thor help method to find help for subtasks
- # @param [Symbol, String, nil] meth
- # @param [Boolean] subcommand
- # @return [void]
- # rubocop:disable UnusedMethodArgument
- def help(meth=nil, subcommand=false)
- if meth && !self.respond_to?(meth)
- klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
- klass.start(['-h', task].compact, shell: shell)
- else
- list = []
- Thor::Util.thor_classes_in(Middleman::Cli).each do |thor_class|
- list += thor_class.printable_tasks(false)
- end
- list.sort! { |a, b| a[0] <=> b[0] }
-
- shell.say 'Tasks:'
- shell.print_table(list, ident: 2, truncate: true)
- shell.say %(\nSee 'middleman help <command>' for more information on specific command.)
- shell.say
- end
- end
-
- # Intercept missing methods and search subtasks for them
- # @param [Symbol] meth
- def method_missing(meth, *args)
- meth = meth.to_s
- meth = self.class.map[meth] if self.class.map.key?(meth)
-
- klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
-
- if klass.nil?
- tasks_dir = File.join(Dir.pwd, 'tasks')
-
- if File.exist?(tasks_dir)
- Dir[File.join(tasks_dir, '**/*_task.rb')].each { |f| require f }
- klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
- end
- end
-
- if klass.nil?
- raise Thor::Error, "There's no '#{meth}' command for Middleman. Try 'middleman help' for a list of commands."
- else
- args.unshift(task) if task
- klass.start(args, shell: shell)
- end
- end
+ def self.exit_on_failure?
+ true
end
end
end
# Require the Middleman version