Simplify README generator
This commit is contained in:
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
base_dir = File.join(File.dirname(__FILE__),'../../..')
|
base_dir = File.join(File.dirname(__FILE__),'../../..')
|
||||||
src_dir = File.join(base_dir, "/src/main/asciidoc")
|
src_dir = File.join(base_dir, "/src/main/asciidoc")
|
||||||
require File.join(File.dirname(__FILE__), 'readme.rb')
|
require 'asciidoctor'
|
||||||
require 'optparse'
|
require 'optparse'
|
||||||
|
|
||||||
options = {}
|
options = {}
|
||||||
input = "#{src_dir}/README.adoc"
|
file = "#{src_dir}/README.adoc"
|
||||||
|
|
||||||
OptionParser.new do |o|
|
OptionParser.new do |o|
|
||||||
o.on('-o OUTPUT_FILE', 'Output file (default is stdout)') { |file| options[:to_file] = file unless file=='-' }
|
o.on('-o OUTPUT_FILE', 'Output file (default is stdout)') { |file| options[:to_file] = file unless file=='-' }
|
||||||
@@ -14,6 +14,17 @@ OptionParser.new do |o|
|
|||||||
o.parse!
|
o.parse!
|
||||||
end
|
end
|
||||||
|
|
||||||
input = ARGV[0] if ARGV.length>0
|
file = ARGV[0] if ARGV.length>0
|
||||||
|
|
||||||
SpringCloud::Build.render_file(input, options)
|
srcDir = File.dirname(file)
|
||||||
|
out = "// Do not edit this file (e.g. go instead to src/main/asciidoc)\n\n"
|
||||||
|
doc = Asciidoctor.load_file file, safe: :safe, parse: false
|
||||||
|
out << doc.reader.read
|
||||||
|
|
||||||
|
unless options[:to_file]
|
||||||
|
puts out
|
||||||
|
else
|
||||||
|
File.open(options[:to_file],'w+') do |file|
|
||||||
|
file.write(out)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|||||||
@@ -1,54 +0,0 @@
|
|||||||
require 'open-uri'
|
|
||||||
|
|
||||||
module SpringCloud
|
|
||||||
module Build
|
|
||||||
|
|
||||||
IncludeDirectiveRx = /^\\?include::([^\[]+)\[(.*?)\]$/
|
|
||||||
|
|
||||||
class << self
|
|
||||||
|
|
||||||
def process_include out, src, target, attrs
|
|
||||||
unless target.include?(':') || target.start_with?('/')
|
|
||||||
target = File.join(src, target)
|
|
||||||
end
|
|
||||||
open(target) do |file|
|
|
||||||
file.each do |line|
|
|
||||||
self.process(out, File.dirname(target), line)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def process out, src, line
|
|
||||||
if ((escaped = line.start_with?('\\include::')) || line.start_with?('include::')) && (match = IncludeDirectiveRx.match(line))
|
|
||||||
if escaped
|
|
||||||
out << line[1..-1]
|
|
||||||
else
|
|
||||||
self.process_include out, src, match[1], match[2].strip
|
|
||||||
end
|
|
||||||
else
|
|
||||||
out << line
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def render_file file, options = {}
|
|
||||||
|
|
||||||
srcDir = File.dirname(file)
|
|
||||||
out = ["// Do not edit this file (e.g. go instead to src/main/asciidoc)\n","\n"]
|
|
||||||
File.new(file).each do |line|
|
|
||||||
self.process(out, srcDir, line)
|
|
||||||
end
|
|
||||||
|
|
||||||
unless options[:to_file]
|
|
||||||
puts out
|
|
||||||
else
|
|
||||||
File.open(options[:to_file],'w+') do |file|
|
|
||||||
out.each { |line| file.write(line) }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
Reference in New Issue
Block a user