29 lines
567 B
Ruby
29 lines
567 B
Ruby
|
FNAME = ARGV.shift
|
||
|
|
||
|
def pipe_in_out io, s
|
||
|
io << s
|
||
|
io.close_write
|
||
|
io.read
|
||
|
end
|
||
|
|
||
|
style_args = %w(
|
||
|
astyle
|
||
|
--style=java
|
||
|
--indent=tab=8
|
||
|
--add-braces
|
||
|
--pad-oper
|
||
|
--pad-comma
|
||
|
--unpad-paren
|
||
|
--delete-empty-lines
|
||
|
--indent-col1-comments
|
||
|
)
|
||
|
|
||
|
s = File.read FNAME
|
||
|
s = IO.popen 'expand', mode: "r+" do |io| pipe_in_out io, s end
|
||
|
s = IO.popen style_args, mode: "r+" do |io| pipe_in_out io, s end
|
||
|
s = s.gsub /\b(\w+) \(/, '\1('
|
||
|
s = s.gsub /\(\s*(.*)\s*\)/, '(\1)'
|
||
|
s = IO.popen 'unexpand', mode: "r+" do |io| pipe_in_out io, s end
|
||
|
30.times do s = s.gsub(/ /, ' ') end
|
||
|
puts s
|