Sha256: f89b026060aba9d2ce0f5670e3baaea61e05b3aa877b41d6f6a3989e1dd90be8
Contents?: true
Size: 1.83 KB
Versions: 5
Compression:
Stored size: 1.83 KB
Contents
require 'ore/config' require 'thor' require 'fileutils' require 'uri' module Ore class CLI < Thor map '-l' => :list map '-u' => :update map '-r' => :remove desc 'list', 'List installed Ore templates' # # Lists builtin and installed templates. # def list print_template = lambda { |path| puts " #{File.basename(path)}" } say "Builtin templates:", :green Config.builtin_templates(&print_template) say "Installed templates:", :green Config.installed_templates(&print_template) end desc 'install URI', 'Installs an Ore template' # # Installs a template into `~/.ore/templates`. # # @param [String] uri # The Git URI to install the template from. # def install(uri) url = URI(uri) name = File.basename(url.path) name.gsub!(/\.git$/,'') path = File.join(Config::TEMPLATES_DIR,name) if File.directory?(path) say "Template #{name} already installed.", :red exit -1 end FileUtils.mkdir_p(path) system('git','clone',uri,path) end desc 'update', 'Updates all installed templates' # # Updates all previously installed templates. # def update Config.installed_templates do |path| say "Updating #{File.basename(path)} ...", :green Dir.chdir(path) { system('git','pull','-q') } end end desc 'remove NAME', 'Removes an Ore template' # # Removes a previously installed template. # # @param [String] name # The name of the template to remove. # def remove(name) name = File.basename(name) path = File.join(Config::TEMPLATES_DIR,name) unless File.exists?(path) say "Unknown template: #{name}", :red exit -1 end FileUtils.rm_rf(path) end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
ore-0.9.4 | lib/ore/cli.rb |
ore-0.9.3 | lib/ore/cli.rb |
ore-0.9.2 | lib/ore/cli.rb |
ore-0.9.1 | lib/ore/cli.rb |
ore-0.9.0 | lib/ore/cli.rb |