Merge pull request #1286 from middleman/git_template
Load templates from Git
This commit is contained in:
commit
09c31b848b
3 changed files with 56 additions and 1 deletions
|
@ -32,6 +32,8 @@ module Middleman
|
|||
say "Middleman #{Middleman::VERSION}"
|
||||
end
|
||||
|
||||
desc 'help', 'Show help'
|
||||
|
||||
# Override the Thor help method to find help for subtasks
|
||||
# @param [Symbol, String, nil] meth
|
||||
# @param [Boolean] subcommand
|
||||
|
@ -92,3 +94,4 @@ require 'middleman-cli/extension'
|
|||
require 'middleman-cli/server'
|
||||
require 'middleman-cli/build'
|
||||
require 'middleman-cli/console'
|
||||
require 'middleman-cli/git'
|
||||
|
|
52
middleman-cli/lib/middleman-cli/git.rb
Normal file
52
middleman-cli/lib/middleman-cli/git.rb
Normal file
|
@ -0,0 +1,52 @@
|
|||
# CLI Module
|
||||
module Middleman::Cli
|
||||
# A thor task for creating new projects
|
||||
class Git < Thor
|
||||
include Thor::Actions
|
||||
check_unknown_options!
|
||||
|
||||
namespace :git
|
||||
|
||||
desc 'git REPO TARGET [options]', 'Create new project from REPO at TARGET'
|
||||
|
||||
# Do not run bundle install
|
||||
method_option 'skip-bundle',
|
||||
type: :boolean,
|
||||
aliases: '-B',
|
||||
default: false,
|
||||
desc: "Don't run bundle install"
|
||||
|
||||
# The git task
|
||||
# @param [String] name
|
||||
def git(repo, target='.')
|
||||
require 'rugged'
|
||||
require 'tmpdir'
|
||||
|
||||
path = repository_path(repo)
|
||||
|
||||
Dir.mktmpdir do |dir|
|
||||
Rugged::Repository.clone_at(path, dir)
|
||||
|
||||
source_paths << dir
|
||||
|
||||
directory dir, target, exclude_pattern: /\.git\/|\.gitignore$/
|
||||
|
||||
inside(target) do
|
||||
run('bundle install')
|
||||
end unless ENV['TEST'] || options[:'skip-bundle']
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def repository_path(repo)
|
||||
"git://github.com/#{repo}.git"
|
||||
end
|
||||
end
|
||||
|
||||
def self.exit_on_failure?
|
||||
true
|
||||
end
|
||||
|
||||
Base.map('g' => 'git')
|
||||
end
|
|
@ -23,5 +23,5 @@ Gem::Specification.new do |s|
|
|||
s.add_dependency('thor', ['>= 0.17.0', '< 2.0'])
|
||||
|
||||
# Templates
|
||||
s.add_dependency('octokit', ['~> 3.1'])
|
||||
s.add_dependency('rugged', [])
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue