#!/usr/bin/env python

import textwrap

USAGE = """
Show IPv4 address classes
"""

from systematic.shell import Script, ScriptCommand, ScriptError
from seine.address import IPv4Address, IPV4_ADDRESS_CLASS_MAP

script = Script(description=USAGE)
script.add_argument('--descriptions', action='store_true', help='Show descriptions')
args = script.parse_args()

for name in sorted(IPV4_ADDRESS_CLASS_MAP.keys()):
    addresses = IPV4_ADDRESS_CLASS_MAP[name]['networks']
    print '%-20s %s' % (name, ' '.join('%s' % address for address in sorted(addresses)))
    if args.descriptions:
        print '\n'.join('  %s' % v for v in textwrap.wrap(IPV4_ADDRESS_CLASS_MAP[name]['description'], 72))
        print
