Merge pull request #5237 from ashmaroli/bundle2new
Merge pull request 5237
This commit is contained in:
commit
504411e476
|
@ -11,6 +11,7 @@ module Jekyll
|
||||||
|
|
||||||
c.option "force", "--force", "Force creation even if PATH already exists"
|
c.option "force", "--force", "Force creation even if PATH already exists"
|
||||||
c.option "blank", "--blank", "Creates scaffolding but with empty files"
|
c.option "blank", "--blank", "Creates scaffolding but with empty files"
|
||||||
|
c.option "skip-bundle", "--skip-bundle", "Skip 'bundle install'"
|
||||||
|
|
||||||
c.action do |args, options|
|
c.action do |args, options|
|
||||||
Jekyll::Commands::New.process(args, options)
|
Jekyll::Commands::New.process(args, options)
|
||||||
|
@ -34,7 +35,7 @@ module Jekyll
|
||||||
create_site new_blog_path
|
create_site new_blog_path
|
||||||
end
|
end
|
||||||
|
|
||||||
Jekyll.logger.info "New jekyll site installed in #{new_blog_path.cyan}."
|
after_install(new_blog_path, options)
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_blank_site(path)
|
def create_blank_site(path)
|
||||||
|
@ -114,6 +115,27 @@ RUBY
|
||||||
def scaffold_path
|
def scaffold_path
|
||||||
"_posts/0000-00-00-welcome-to-jekyll.markdown.erb"
|
"_posts/0000-00-00-welcome-to-jekyll.markdown.erb"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# After a new blog has been created, print a success notification and
|
||||||
|
# then automatically execute bundle install from within the new blog dir
|
||||||
|
# unless the user opts to generate a blank blog or skip 'bundle install'.
|
||||||
|
|
||||||
|
def after_install(path, options = {})
|
||||||
|
Jekyll.logger.info "New jekyll site installed in #{path.cyan}."
|
||||||
|
Jekyll.logger.info "Bundle install skipped." if options["skip-bundle"]
|
||||||
|
|
||||||
|
unless options["blank"] || options["skip-bundle"]
|
||||||
|
bundle_install path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def bundle_install(path)
|
||||||
|
Jekyll::External.require_with_graceful_fail "bundler"
|
||||||
|
Jekyll.logger.info "Running bundle install in #{path.cyan}..."
|
||||||
|
Dir.chdir(path) do
|
||||||
|
system("bundle", "install")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -40,9 +40,12 @@ class TestNewCommand < JekyllUnitTest
|
||||||
|
|
||||||
should "display a success message" do
|
should "display a success message" do
|
||||||
Jekyll::Commands::New.process(@args)
|
Jekyll::Commands::New.process(@args)
|
||||||
output = Jekyll.logger.messages.last
|
output = Jekyll.logger.messages[-3]
|
||||||
|
output_last = Jekyll.logger.messages.last
|
||||||
success_message = "New jekyll site installed in #{@full_path.cyan}."
|
success_message = "New jekyll site installed in #{@full_path.cyan}."
|
||||||
|
bundle_message = "Running bundle install in #{@full_path.cyan}..."
|
||||||
assert_includes output, success_message
|
assert_includes output, success_message
|
||||||
|
assert_includes output_last, bundle_message
|
||||||
end
|
end
|
||||||
|
|
||||||
should "copy the static files in site template to the new directory" do
|
should "copy the static files in site template to the new directory" do
|
||||||
|
@ -85,7 +88,10 @@ class TestNewCommand < JekyllUnitTest
|
||||||
should "create blank project" do
|
should "create blank project" do
|
||||||
blank_contents = %w(/_drafts /_layouts /_posts /index.html)
|
blank_contents = %w(/_drafts /_layouts /_posts /index.html)
|
||||||
capture_stdout { Jekyll::Commands::New.process(@args, "--blank") }
|
capture_stdout { Jekyll::Commands::New.process(@args, "--blank") }
|
||||||
|
output = Jekyll.logger.messages.last
|
||||||
|
bundle_message = "Running bundle install in #{@full_path.cyan}..."
|
||||||
assert_same_elements blank_contents, dir_contents(@full_path)
|
assert_same_elements blank_contents, dir_contents(@full_path)
|
||||||
|
refute_includes output, bundle_message
|
||||||
end
|
end
|
||||||
|
|
||||||
should "force created folder" do
|
should "force created folder" do
|
||||||
|
@ -93,6 +99,13 @@ class TestNewCommand < JekyllUnitTest
|
||||||
output = capture_stdout { Jekyll::Commands::New.process(@args, "--force") }
|
output = capture_stdout { Jekyll::Commands::New.process(@args, "--force") }
|
||||||
assert_match(%r!New jekyll site installed in!, output)
|
assert_match(%r!New jekyll site installed in!, output)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
should "skip bundle install when opted to" do
|
||||||
|
capture_stdout { Jekyll::Commands::New.process(@args, "--skip-bundle") }
|
||||||
|
output = Jekyll.logger.messages.last
|
||||||
|
bundle_message = "Bundle install skipped."
|
||||||
|
assert_includes output, bundle_message
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when multiple args are given" do
|
context "when multiple args are given" do
|
||||||
|
|
Loading…
Reference in New Issue