#!/usr/bin/env ruby

require 'smallvictories'

def help
  %Q(
  Usage: sv [COMMAND] [OPTIONS]

  Commands:
    bootstrap, bootstrap FOLDER     Setup folder with default files
    compile                         Compile files
    inline                          Inline CSS in your HTML files
    watch                           Watch for changes and compile files
    help                            Prints this help document
    version                         Prints the small victories gem version

  Options:
    -h, --help                      Prints this help document
    -v, --version                   Prints the small victories gem version

  See https://github.com/xxix/smallvictories-gem for additional documentation.
  )
end

def bootstrap folder=nil
  config = SmallVictories::Configuration.new
  builder = SmallVictories::Builder.new(config: config)
  builder.setup folder
  compile
end

def compile
  config = SmallVictories::Configuration.new
  compiler = SmallVictories::Compiler.new(config: config)
  compiler.compile_sprite
  compiler.compile_css
  compiler.compile_js
  compiler.compile_html
end

def inline
  config = SmallVictories::Configuration.new
  compiler = SmallVictories::Compiler.new(config: config)
  compiler.compile_css
  compiler.compile_js
  compiler.compile_html
  compiler.minify_css
  compiler.minify_js
  compiler.inline_html
end

def minify
  config = SmallVictories::Configuration.new
  compiler = SmallVictories::Compiler.new(config: config)
  compiler.compile_css
  compiler.compile_js
  compiler.compile_html
  compiler.minify_css
  compiler.minify_js
end

def watch
  compile
  config = SmallVictories::Configuration.new
  compiler = SmallVictories::Compiler.new(config: config)
  watcher = SmallVictories::Watcher.new(compiler: compiler)
  watcher.watch
end

case ARGV[0]
when '-v', '--version', 'version'
  puts SmallVictories::VERSION
when '-h', '--help', 'help'
  puts help
when 'bootstrap'
  bootstrap ARGV[1]
when 'compile'
  compile
when 'inline'
  inline
when 'watch'
  watch
else
  puts "`#{ARGV[0]}` command not found.\n"
  puts help
end