This file is indexed.

/usr/bin/maruku is in ruby-maruku 0.6.0-1build1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#!/usr/bin/env ruby

require 'maruku'
require 'optparse'


def cli_puts(s)
	$stderr.puts(s) if MaRuKu::Globals[:verbose]	
end


export = :html
break_on_error = false
using_math = false
using_mathml = false
output_file = nil

opt = OptionParser.new do |opts|
	opts.banner = "Usage: maruku [options] [file1.md [file2.md ..."

	opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
		MaRuKu::Globals[:verbose] = v end
	opts.on("-u", "--[no-]unsafe", "Use unsafe features") do |v|
		MaRuKu::Globals[:unsafe_features] = v end

	opts.on("-b", "Break on error") do |v|
		break_on_error = true end


	opts.on("-i", "--math-images ENGINE", "Uses ENGINE to render TeX to PNG.") do |s|
		using_math = true
		MaRuKu::Globals[:html_math_output_png] = true
		MaRuKu::Globals[:html_math_output_mathml] = false
		MaRuKu::Globals[:html_png_engine] = s
		cli_puts "Using png engine #{s}."
	end

	opts.on("-m", "--math-engine ENGINE", "Uses ENGINE to render MathML") do |s|
		MaRuKu::Globals[:html_math_output_png] = false
		MaRuKu::Globals[:html_math_output_mathml] = true
		using_math = true
		using_mathml = true
		MaRuKu::Globals[:html_math_engine] = s
	end

	opts.on("-o", "--output FILE", "Output filename") do |s|
		output_file = s
	end

	opts.on_tail("--pdf",  "Write PDF","First writes LaTeX, then calls pdflatex." ) do export = :pdf  end
	opts.on_tail("--s5", "Write S5 slideshow") do export = :s5 end
	opts.on_tail("--html", "Write HTML") do export = :html end
	opts.on_tail("--html-frag", "Write the contents of the BODY.") do export = :html_frag end
	opts.on_tail("--tex",  "Write LaTeX" ) do export = :tex  end
	opts.on_tail("--inspect",  "Shows the parsing result" ) do export = :inspect  end

	opts.on_tail("--version", "Show version") do
		puts "Maruku #{MaRuKu::Version}"; exit
	end

	opts.on_tail("--ext EXTENSIONS",  "Use maruku extensions (comma separated)" ) do |s|
	  s.split(",").each do |e| require "maruku/ext/#{e}"; end
	end

	opts.on_tail("-h", "--help", "Show this message") do
		puts opts
		exit
	end

end

begin 
opt.parse!
rescue OptionParser::InvalidOption=>e
	$stderr.puts e
	$stderr.puts opt
	exit
end


if using_math
	cli_puts "Using Math extensions."
	require 'maruku/ext/math'
end

#p ARGV
#p MaRuKu::Globals


inputs =
# If we are given filenames, convert each file 
if not ARGV.empty?
	ARGV.map do |f|
		# read file content
		cli_puts "Reading from file #{f.inspect}." 
		[f, File.open(f,'r').read]
	end
else
	export = :html_frag if export == :html
	export = :tex_frag if export == :tex
	
	cli_puts  "Reading from standard input."
	[[nil, $stdin.read]]
end

inputs.each do |f, input|
	
		# create Maruku
		params = {}
		params[:on_error] = break_on_error ? :raise : :warning

		t = Time.now
		doc = Maruku.new(input, params)

		cli_puts ("Parsing in %.2f seconds." % (Time.now-t))

		out=""; suffix = "?"
		t = Time.now
		case export
		when :html 
			suffix = using_mathml ? '.xhtml' : '.html'
			out = doc.to_html_document( {:indent => -1})
		when :html_frag 
			suffix='.html_frag'
			out = doc.to_html( {:indent => -1})
		when :pdf, :tex
			suffix='.tex'
			out = doc.to_latex_document
		when :tex_frag
			suffix='.tex_frag'
			out = doc.to_latex
		when :inspect
			suffix='.txt'
			out = doc.inspect
		when :markdown
			suffix='.pretty_md'
			out = doc.to_markdown
		when :s5
			suffix='_s5slides.html'
			out = doc.to_s5({:content_only => false})
		end

		cli_puts("Rendering in %.2f seconds." % (Time.now-t))
	
		# write to file or stdout
		if f
			
			if not output_file 
				dir = File.dirname(f)
				job = File.join(dir, File.basename(f, File.extname(f)))
				output_file = job  + suffix
			else
				job = File.basename(output_file, File.extname(output_file))
			end
			
			if output_file == "-"
				cli_puts "Writing to standard output"
				$stdout.puts out
			else
			
				if not (export == :pdf)
					cli_puts "Writing to #{output_file}"
					File.open(output_file,'w') do |f| f.puts out end
				else
					cli_puts "Writing to #{job}.tex"
					File.open("#{job}.tex",'w') do |f| f.puts out end
					cmd = "pdflatex '#{job}.tex' -interaction=nonstopmode "+
					      "'-output-directory=#{dir}' "
					cli_puts "maruku: executing $ #{cmd}"
					# run twice for cross references
					system cmd 
					system cmd
				end
			
			end
		else # write to stdout
			cli_puts "Writing to standard output"
			$stdout.puts out
		end
	end