#! /usr/bin/python

import os
import sys
import sys
import string
from string import Formatter


from setenv import autoImportEnv
from mylogger import getmLogger

#  logger = getmLogger(os.environ["SCRIPT_LOG_LEVEL"], "setEnvByChipsetJson")
logger = getmLogger("debug", "parsetIfaaBuildParam")

CONFIG_DIR_NAME="configs"
MODEL_LIST_FILE="model_list.json"

class G:
    features = {}

def parseModelListJson2Env(path, modelName):
    '''
    ++++++++++++++++++++++++++++++++++++++++++++++++
    Make sure model_list.json exist
    -------------------------------------------------
    export:
        - VENDOR_NAME
        - CHIPSET_NAME
    -------------------------------------------------
    '''
    modelListFileJson = os.path.join(path, CONFIG_DIR_NAME, MODEL_LIST_FILE)
    return autoImportEnv(modelListFileJson, modelName)

def parseChipsetJson2Env(path):
    '''
    ++++++++++++++++++++++++++++++++++++++++++++++++
    MUST be defined:
        "SOURCE_CODE_ROOT"
        "VENDOR_NAME"
        "CHIPSET_NAME"

    -------------------------------------------------
    export:
        - common configuation for specified chipset
    -------------------------------------------------
    '''
    vendorName = G.features.get("VENDOR_NAME")
    chipsetName = G.features.get('CHIPSET_NAME')


    if ( path == None or vendorName == None or chipsetName == None ):
        logger.error("Error:: CHIPSET_NAME VENDOR_NAME is not defined yet !!!")
        return {}

    chipsetDir= os.path.join(path, CONFIG_DIR_NAME, vendorName,
                chipsetName)

    if not os.path.exists(chipsetDir):
        logger.error("chipset Dir(%s) does not exist yet!!!" % chipsetDir)

    chipsetJsonFile = os.path.join(chipsetDir, chipsetName)
    chipsetJsonFile = chipsetJsonFile + ".json"

    if not os.path.exists(chipsetJsonFile):
        logger.error("chipset fileName(%s) is not existyet!!!" % chipsetJsonFile)

    return autoImportEnv(chipsetJsonFile)


def formartFeaturs():
    result = "("
    for key in G.features:
        result += "["+key+"]=\""+ G.features.get(key) + "\"" + " "
    
    result += ")"
    return result

def parse(path, modelName):
    G.features = parseModelListJson2Env(path, modelName)
    G.features = parseChipsetJson2Env(path)
    print formartFeaturs()
    pass

if __name__ == "__main__":
    path = sys.argv[1]
    modelName = sys.argv[2]
    parse(path, modelName)
