require 'thor' require 'yaml' module Jammit class CLI < Thor ARGV = ::ARGV.dup desc "init", "Initialize a project for jammit-core" def init Jammit::Config.dispatch(:create) end desc "config", "Manage Jammit configuration file. Use jammit config show, jammit config set " def config(cmd, *params) Jammit::Config.dispatch(cmd.to_sym, *params) end desc "build", "Compile assets" def build(package = :all, *params) package = package.to_s case package when "all" Jammit.packager.force = true #Jammit.configuration[:force] Jammit.packager.precache_all(Jammit.config[:output_folder], Jammit.config[:base_url]) else Jammit.packager.force = true Jammit.packager.precache(package, Jammit.config[:output_folder], Jammit.config[:base_url]) end end def initialize(args=ARGV, options={}, config={}) Jammit.ui = UI::Shell.new(shell) super #@options = { # :config_path => Jammit::DEFAULT_CONFIG_PATH, # :output_folder => nil, # :base_url => nil, # :force => false #} if options.kind_of? Hash Jammit.options = options end #Jammit.packager.force = @options[:force] #Jammit.packager.precache_all(@options[:output_folder], @options[:base_url]) end private # Uses @OptionParser@ to grab the options: *--output*, *--config*, and # *--base-url*... def parse_options #@options = { # :config_path => Jammit::DEFAULT_CONFIG_PATH, # :output_folder => nil, # :base_url => nil, # :force => false #} #@option_parser = OptionParser.new do |opts| # opts.on('-o', '--output PATH', 'output folder for packages (default: "public/assets")') do |output_folder| # @options[:output_folder] = output_folder # end # opts.on('-c', '--config PATH', 'path to assets.yml (default: "config/assets.yml")') do |config_path| # @options[:config_path] = config_path ## end # opts.on('-u', '--base-url URL', 'base URL for MHTML (ex: "http://example.com")') do |base_url| # @options[:base_url] = base_url # end # opts.on('-f', '--force', 'force a rebuild of all assets') do |force| # @options[:force] = force # end # opts.on_tail('-v', '--version', 'display Jammit version') do # puts "Jammit version #{Jammit::VERSION}" # exit # end #end #@option_parser.banner = BANNER #@option_parser.parse!(ARGV) end end end