#!/usr/bin/env python
""" Dump the .cnv content as text

    Doesn't matter the version of the .cnv, this command will
      show it's content in a unified pattern, as an ASCII text.
"""

from optparse import OptionParser

from seabird.exceptions import CNVError
from seabird.cnv import fCNV

# ==== Parsing the options on command line
parser = OptionParser()

parser.add_option("-d", "--default", dest="defaultfilename",
    help="YAML FILE with default vaules", metavar="FILE")

(options, args) = parser.parse_args()

try:
    data = fCNV(args[0], options.defaultfilename)
except CNVError as e:
    print("\033[91m%s\033[0m" % e.msg)
    import sys; sys.exit()
except:
    raise

print("file: %s" % args[0])
print("Global attributes")
for a in sorted(data.attributes.keys()):
    print("\t\033[93m%s\033[0m: %s" % (a, data.attributes[a]))

print("\nVariabes")
for k in data.keys():
    print("\033[91m%s\033[0m" % k)
    for a in data[k].attributes.keys():
        print("\t\033[93m%s\033[0m: %s" % (a, data[k].attributes[a]))
