#!/usr/bin/env ruby
encoding:UTF-8
require 'date'
def file_type(file)
fm = FileMagic.fm
file_magic = fm.file(file)
fm.flags = [:mime_type]
file_mime = fm.file(file)
return file_magic, file_mime
end
section = version = category = ''
if ARGV.empty?
puts "No man-page file given!"
exit false
elsif !File.exist?(ARGV[0] )
puts "File %s does not exist" %ARGV[0]
exit false
elsif !File.writable?(ARGV[0] )
puts "File %s cannot be modified" %ARGV[0]
exit false
else
fname = ARGV[0]
if ARGV.length > 1
section = ARGV[1]
end
if ARGV.length > 2
version = ARGV[2]
end
if ARGV.length > 3
category = ARGV[3]
end
file = File.new(fname, 'r+')
line = ''
out = ''
begin
File.new("/tmp/bak_" << File.basename(fname), 'w+' ).write(file.read)
file.rewind
while file.gets
line = $_
if '.' != line && !line.empty? && !line.start_with?('.TH')
out << line
else
if line && !line.empty?
h1 = File.basename(fname).split('.')[0]
out << ".TH " << h1
out << " \"%s\" \"%s\" \"%s\" \"%s\"\n" %[section, Date.today.strftime('%a %d %b %Y'), version, category]
end
end
end
rescue EOFError => ex
puts "No header found!"
exit 0
rescue StandardError => ex
exit 0
end
file.pos = 0
file << out
file.close
end