79 lines
1.7 KiB
Python
Executable File
79 lines
1.7 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
import re
|
|
import datetime
|
|
|
|
f = sys.stdout
|
|
|
|
def outputCommand(_command):
|
|
process = subprocess.Popen(['gz', _command, '-h'], stderr=subprocess.PIPE)
|
|
stdout, stderr = process.communicate()
|
|
help_txt = stderr
|
|
|
|
lines = help_txt.splitlines()
|
|
|
|
i = 0
|
|
|
|
f.write(".UNINDENT\n")
|
|
f.write(".SS %s\n" % _command)
|
|
f.write(".sp\n.nf\n.ft C\n")
|
|
f.write("%s\n" % lines[i].strip())
|
|
f.write(".ft P\n.fi\n.sp\n")
|
|
|
|
i = i + 1
|
|
|
|
while lines[i] != "Options:":
|
|
f.write("%s\n" % lines[i].strip())
|
|
i = i + 1
|
|
|
|
i = i + 1
|
|
|
|
f.write(".sp\nOptions:\n")
|
|
f.write(".INDENT 0.0\n")
|
|
|
|
while i < len(lines):
|
|
line = lines[i]
|
|
line = re.sub('\s+', ' ', line).strip()
|
|
line = line.replace(" [",",")
|
|
line = line.replace(" ]","")
|
|
line = re.sub('\s([A-Z].*)', r'\n.\n\1', line)
|
|
|
|
line = line.replace(" arg\n","\\fR=\\fIarg\\fR\n")
|
|
line = line.replace("-","\\-")
|
|
|
|
while i+1 < len(lines) and len(lines[i+1]) > 0 and lines[i+1][0] == " " and re.match(r'^ ', lines[i+1]):
|
|
i = i + 1
|
|
line += " " + lines[i].strip()
|
|
|
|
if len(line) > 0:
|
|
f.write(".TP\n")
|
|
f.write('.B %s\n' % line)
|
|
|
|
i = i + 1
|
|
|
|
|
|
f.write('.TH "GZ" "1" "September 2014" "" ""\n')
|
|
f.write('.\n')
|
|
f.write('.SH "NAME"\n')
|
|
f.write('\\fBgz\\fR \- Gazebo command line tool for control and analysis.\n')
|
|
f.write('.\n')
|
|
f.write('.SH "SYNPOSIS"\n')
|
|
f.write('\\fBgz\\fR \\fIcommand\\fR [option]\.\.\. [argument]\.\.\.\n')
|
|
f.write('.\n')
|
|
f.write('.UNINDENT\n')
|
|
f.write('.SH COMMANDS\n')
|
|
|
|
process = subprocess.Popen(['gz', 'debug'], stdout=subprocess.PIPE)
|
|
stdout, stderr = process.communicate()
|
|
helpTxt = stdout
|
|
|
|
commands = helpTxt.splitlines()
|
|
|
|
for cmd in commands:
|
|
outputCommand(cmd)
|
|
|
|
f.close()
|