Load templates from Git
This commit is contained in:
parent
336b80cbbd
commit
571704322d
3 changed files with 56 additions and 1 deletions
|
@ -32,6 +32,8 @@ module Middleman
|
||||||
say "Middleman #{Middleman::VERSION}"
|
say "Middleman #{Middleman::VERSION}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
desc 'help', 'Show help'
|
||||||
|
|
||||||
# Override the Thor help method to find help for subtasks
|
# Override the Thor help method to find help for subtasks
|
||||||
# @param [Symbol, String, nil] meth
|
# @param [Symbol, String, nil] meth
|
||||||
# @param [Boolean] subcommand
|
# @param [Boolean] subcommand
|
||||||
|
@ -92,3 +94,4 @@ require 'middleman-cli/extension'
|
||||||
require 'middleman-cli/server'
|
require 'middleman-cli/server'
|
||||||
require 'middleman-cli/build'
|
require 'middleman-cli/build'
|
||||||
require 'middleman-cli/console'
|
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'])
|
s.add_dependency('thor', ['>= 0.17.0', '< 2.0'])
|
||||||
|
|
||||||
# Templates
|
# Templates
|
||||||
s.add_dependency('octokit', ['~> 3.1'])
|
s.add_dependency('rugged', [])
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue