58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
| #!/usr/bin/env ruby
 | |
| # frozen_string_literal: true
 | |
| 
 | |
| STDOUT.sync = true
 | |
| 
 | |
| $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
 | |
| 
 | |
| require "jekyll"
 | |
| require "mercenary"
 | |
| 
 | |
| Jekyll::PluginManager.require_from_bundler
 | |
| 
 | |
| Jekyll::Deprecator.process(ARGV)
 | |
| 
 | |
| Mercenary.program(:jekyll) do |p|
 | |
|   p.version Jekyll::VERSION
 | |
|   p.description "Jekyll is a blog-aware, static site generator in Ruby"
 | |
|   p.syntax "jekyll <subcommand> [options]"
 | |
| 
 | |
|   p.option "source", "-s", "--source [DIR]", "Source directory (defaults to ./)"
 | |
|   p.option "destination", "-d", "--destination [DIR]",
 | |
|     "Destination directory (defaults to ./_site)"
 | |
|   p.option "safe", "--safe", "Safe mode (defaults to false)"
 | |
|   p.option "plugins_dir", "-p", "--plugins PLUGINS_DIR1[,PLUGINS_DIR2[,...]]", Array,
 | |
|     "Plugins directory (defaults to ./_plugins)"
 | |
|   p.option "layouts_dir", "--layouts DIR", String,
 | |
|     "Layouts directory (defaults to ./_layouts)"
 | |
|   p.option "profile", "--profile", "Generate a Liquid rendering profile"
 | |
| 
 | |
|   Jekyll::External.require_if_present(Jekyll::External.blessed_gems) do |g, ver_constraint|
 | |
|     cmd = g.split("-").last
 | |
|     p.command(cmd.to_sym) do |c|
 | |
|       c.syntax cmd
 | |
|       c.action do
 | |
|         Jekyll.logger.abort_with "You must install the '#{g}' gem" \
 | |
|           " version #{ver_constraint} to use the 'jekyll #{cmd}' command."
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   Jekyll::Command.subclasses.each { |c| c.init_with_program(p) }
 | |
| 
 | |
|   p.action do |args, _|
 | |
|     if args.empty?
 | |
|       Jekyll.logger.error "A subcommand is required."
 | |
|       puts p
 | |
|       abort
 | |
|     else
 | |
|       subcommand = args.first
 | |
|       unless p.has_command? subcommand
 | |
|         Jekyll.logger.abort_with "fatal: 'jekyll #{args.first}' could not" \
 | |
|           " be found. You may need to install the jekyll-#{args.first} gem" \
 | |
|           " or a related gem to be able to use this subcommand."
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |