exe/dirtree in dirtree-0.5.0 vs exe/dirtree in dirtree-0.6.0
- old
+ new
@@ -2,10 +2,11 @@
require 'dirtree'
require 'optparse'
require 'json'
require 'erb'
require 'open-uri'
+require 'tempfile'
templates_dir = File.join(File.dirname(__FILE__), '..', 'templates')
templates = Dir.open(templates_dir).map do |file|
file[0...file.index('.')]
end.reject(&:empty?)
@@ -42,15 +43,23 @@
) do
options[:local_dependencies] = true
end
opts.on(
+ '-s',
+ '--screenshot',
+ 'Get an image screenshot of the directory tree'
+ ) do
+ options[:screenshot] = true
+ end
+
+ opts.on(
'-oFile.html',
'--output=File.html',
- 'Specify a path to write output, if
- not specified output will be printed to STDOUT'
+ 'Specify a path to write HTML output'
) do |value|
+ raise 'missing filename after ‘-o’' if value.empty?
options[:output] = value
end
opts.on(
'-tTemplateName',
@@ -80,10 +89,27 @@
injection
end
end
-if options.key?(:output)
- File.write(options[:output], result)
-else
- puts result
+File.write(options[:output], result) if options.key?(:output)
+
+if options.key?(:screenshot)
+ unless options.key?(:output)
+ tmp = Tempfile.new
+ tmp.write(result)
+ tmp.close
+ end
+ file = options[:output] || tmp.path
+ %w[chromium chrome google-chrome google-chrome-stable].each do |chrome|
+ system(
+ chrome,
+ '--disable-gpu',
+ '--headless',
+ '--screenshot',
+ '--window-size=1500,1500',
+ "file://" + file
+ ) && break
+ end
end
+
+puts result unless options.key?(:output) || options.key?(:screenshot)