"man -k"(apropos)からurlのlinkのリストを作成するスクリプト

motivation

"man -k zmq"などで利用できる関数のリストを表示したら、その解説をしているドキュメントへのリンクへ飛びたい。

how to use

input

man -k python | grep "^python " | python man-k-replace.py "http://www.%s.org" "|%s %s| %s|" 

output

|<a href='http://www.python.org'>python</a> (1)           | an interpreted, interactive, object-oriented programming language|

hatenaに貼る。

python (1) an interpreted, interactive, object-oriented programming language

code

きっと、こういうコードが素早く書けると生産性が上がる。きっと。

#!/usr/bin/python

import sys
import re

if len(sys.argv) >= 2:
    urlfmt = sys.argv[1]
if len(sys.argv) >= 3: 
    fmt = sys.argv[2] 
else:
    fmt = "%s %s - %s"


pattern = r'^(.+?)\s+(.+)- (.+)'
rx = re.compile(pattern)

def convert(line,m):
    cmd_name, padding, message = m.groups()
    url = urlfmt % cmd_name
    link = "<a href='%s'>%s</a>" % (url, cmd_name)
    return fmt % (link,padding,message)

for line in sys.stdin:
    m = rx.search(line)
    if m is None:
        print line
    else:
        print convert(line,m)