lib/slideshow/cli/runner.rb in slideshow-1.2.0.beta1 vs lib/slideshow/cli/runner.rb in slideshow-1.2.0.beta2
- old
+ new
@@ -1,9 +1,11 @@
module Slideshow
class Runner
+ include PluginHelper
+
def initialize
@logger = Logger.new(STDOUT)
@logger.level = Logger::INFO
@opts = Opts.new
@@ -12,29 +14,10 @@
end
attr_reader :logger, :opts, :config, :headers
- def load_plugins
- patterns = []
- patterns << "#{config.config_dir}/lib/**/*.rb"
- patterns << 'lib/**/*.rb' unless Slideshow.root == File.expand_path( '.' ) # don't include lib if we are in repo (don't include slideshow/lib)
-
- patterns.each do |pattern|
- pattern.gsub!( '\\', '/') # normalize path; make sure all path use / only
- Dir.glob( pattern ) do |plugin|
- begin
- puts "Loading plugins in '#{plugin}'..."
- require( plugin )
- rescue Exception => e
- puts "** error: failed loading plugins in '#{plugin}': #{e}"
- end
- end
- end
- end # method load_plugins
-
-
def find_file_with_known_extension( fn )
dirname = File.dirname( fn )
basename = File.basename( fn, '.*' )
extname = File.extname( fn )
logger.debug "dirname=#{dirname}, basename=#{basename}, extname=#{extname}"
@@ -113,13 +96,14 @@
end
cmd.on( '-g', '--generate', 'Generate Slide Show Templates (using built-in S6 Pack)' ) { opts.generate = true }
## fix:/todo: add generator for quickstart
- cmd.on( '-q', '--quick', 'Generate Quickstart Slide Show Sample') { }
-
+ cmd.on( '-q', '--quick', 'Generate Quickstart Slide Show Sample') { opts.quick = true }
+ cmd.on( '-p', '--plugins', '(Debug) List Plugin Scripts in Load Path' ) { opts.plugins = true }
+
cmd.on( '-v', '--version', "Show version" ) do
puts Slideshow.generator
exit
end
@@ -163,11 +147,15 @@
puts Slideshow.generator
if opts.list?
List.new( logger, opts, config ).run ### todo: remove opts (merge access into config)
+ elsif opts.plugins?
+ Plugins.new( logger, opts, config ).run ### todo: remove opts (merge access into config)
elsif opts.generate?
GenTemplates.new( logger, opts, config ).run ### todo: remove opts
+ elsif opts.quick?
+ Quick.new( logger, opts, config ).run ### todo: remove opts
elsif opts.fetch?
Fetch.new( logger, opts, config ).run ### todo: remove opts
else
load_plugins # check for optional plugins/extension in ./lib folder
\ No newline at end of file