#! /usr/bin/env python
""" Dump configuration file """
import sys
from pydevmgr import Manager

templates = Manager.__device_templates__ 

usage = """pydevmgr_dump Class name [opc-ua_address, cfg_rel_dir]

Class must be one of 
    {classes}
    
name : name of the device

opc-ua_address (optional): a valid address for opc-ua e.g. opc.tcp://134.171.59.99:4840

cfg_rel_dir (optional): The default relatif path to mapping files and shildren devices
                       default is  fcf/devmgr/server
                      
""".format(classes="   ".join( templates.keys()))


if __name__ == "__main__":
    
    if len(sys.argv)<2:
        print(usage)
        sys.exit(1)
        
    if len(sys.argv)>=3:
        name = sys.argv[2]
    else:
        name = sys.argv[1].lower()+"1"
        
        
    if len(sys.argv)>=4:
        address = sys.argv[3]
    else:
        address = "opc.tcp://my_plc_address:4840"


    if len(sys.argv)==5:
        cfg_dir = sys.argv[4]
    else:
        cfg_dir = "fcf/devmgr/server"
    
    if len(sys.argv)>5:
        print(usage)
        sys.exit(1)
    
    try:
        template  = templates[sys.argv[1].capitalize()]
    except KeyError:
        print(usage)
        sys.exit(1)

    print(template.format(name=name, address=address, cfg_dir=cfg_dir))

