class Troy::Cli
def self.exit_on_failure?
def self.exit_on_failure? true end
def export
def export runner = lambda do if options[:assets] site.export_assets site.export_files end options[:file]&.each do |file| site.export_pages(file) end site.export if !options[:assets] && !options[:file] end if options[:benchmark] require "benchmark" elapsed = Benchmark.realtime(&runner) puts "=> Finished in #{elapsed.round(2)}s" else runner.call end end
def initialize(args = [], options = {}, config = {})
def initialize(args = [], options = {}, config = {}) if (config[:current_task] || config[:current_command]).name == "new" && args.empty? raise Error, "The site path is required. For details run: troy help new" end super end
def new(path)
def new(path) generator = Generator.new generator.destination_root = path generator.invoke_all end
def server
def server begin handler = Rackup::Handler.pick(%i[puma thin webrick]) rescue Exception raise Error, "No Rack handler found. Install a Rack handler (e.g. puma, thing, unicorn, webrick)" end handler.run Troy::Server.new(File.join(Dir.pwd, "public")), Port: options[:port], Host: options[:host] end
def site
def site @site ||= Troy::Site.new(Dir.pwd, options) end
def version
def version say "Troy #{Troy::VERSION}" end