buildframework/helium/sf/python/pythoncore/lib/icf2txt.py
author lorewang
Wed, 01 Dec 2010 16:05:36 +0800
changeset 715 e0739b8406dd
parent 588 c7c26511138f
permissions -rw-r--r--
Specify extenal tool with path
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     1
#============================================================================ 
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     2
#Name        : icf2txt.py 
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     3
#Part of     : Helium 
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     4
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     5
#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     6
#All rights reserved.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     7
#This component and the accompanying materials are made available
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     8
#under the terms of the License "Eclipse Public License v1.0"
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     9
#which accompanies this distribution, and is available
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    10
#at the URL "http://www.eclipse.org/legal/epl-v10.html".
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    11
#
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    12
#Initial Contributors:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    13
#Nokia Corporation - initial contribution.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    14
#
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    15
#Contributors:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    16
#
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    17
#Description:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    18
#===============================================================================
588
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents: 587
diff changeset
    19
""" icf 2 text"""
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    20
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    21
import sys
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    22
import amara
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    23
import os
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    24
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    25
def get_icfs(filename):
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    26
    """ Read the list of icfs from the BOM. """
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    27
    result = []
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    28
    bomxmlFile = open(filename, "r")
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    29
    bomxml = amara.parse(bomxmlFile)
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    30
    if hasattr(bomxml.bom.content.project, "icf"):
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    31
        for icf in bomxml.bom.content.project.icf:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    32
            result.append(str(icf))
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    33
    bomxmlFile.close()
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    34
    return result
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    35
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    36
def main():
588
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents: 587
diff changeset
    37
    """main method in the file"""
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    38
    if len(sys.argv) != 3:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    39
        print "Usage: icf2txt.py bom.xml out.txt"
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    40
        sys.exit(1)
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    41
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    42
    result = ['BOM not generated, the list of ICFs could not be generated']
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    43
    if os.path.exists(sys.argv[1]):
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    44
        result = get_icfs(sys.argv[1])
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    45
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    46
    outFile = open(sys.argv[2], "w")
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    47
    for icf in result:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    48
        outFile.write(str(icf) + "\n")
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    49
    outFile.close()
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    50
    
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    51
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    52
if __name__ == "__main__":
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    53
    main()