configurationengine/source/scripts/configroot2flat.py
author m2lahtel
Wed, 08 Sep 2010 12:20:56 +0300
changeset 4 0951727b8815
parent 3 e7e0ae78773e
permissions -rw-r--r--
Updated to 1.2.13 release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     1
#
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     2
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     3
# All rights reserved.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     4
# This component and the accompanying materials are made available
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     5
# under the terms of "Eclipse Public License v1.0"
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     6
# which accompanies this distribution, and is available
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     8
#
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     9
# Initial Contributors:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    11
#
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    12
# Contributors:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    13
#
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    14
# Description:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    15
#
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    16
#!/usr/bin/env python
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    17
## 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    18
# @author Teemu Rytkonen
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    19
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    20
from optparse import OptionParser
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    21
from cone.action import configroot2flat
4
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
    22
import cone_common
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    23
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    24
def get_parser():
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    25
    parser = OptionParser()
4
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
    26
    parser.add_options(cone_common.COMMON_OPTIONS)
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    27
    parser.add_option("-c", "--configuration",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    28
                        dest="configs",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    29
                        action="append",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    30
                        help="Defines the name of the configuration for the action, can be "\
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    31
                             "specified multiple times to include multiple configurations.",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    32
                        metavar="CONFIG",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    33
                        default=[])
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    34
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    35
    parser.add_option("--config-wildcard",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    36
                      action="append",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    37
                      dest="config_wildcards",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    38
                      help="Wildcard pattern for including configurations, e.g. "\
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    39
                           "product_langpack_*_root.confml",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    40
                      metavar="WILDCARD",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    41
                      default=[])
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    42
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    43
    parser.add_option("--config-regex",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    44
                      action="append",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    45
                      dest="config_regexes",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    46
                      help="Regular expression for including configurations, e.g. "\
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    47
                           "product_langpack_\\d{2}_root.confml",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    48
                      metavar="REGEX",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    49
                      default=[])
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    50
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    51
    parser.add_option("-p", "--project",\
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    52
                       dest="project",\
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    53
                       help="defines the location of current project. Default is the current working directory.",\
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    54
                       default=".",\
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    55
                       metavar="STORAGE")
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    56
    return parser
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    57
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    58
def main():
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    59
    """ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    60
    Configuration root flattener.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    61
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    62
    parser = get_parser()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    63
    options, _ = parser.parse_args()
4
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
    64
    cone_common.handle_common_options(options)
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    65
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    66
    action = configroot2flat.ConeConfigroot2FlatAction(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    67
        project          = options.project,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    68
        configs          = options.configs,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    69
        config_wildcards = options.config_wildcards,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    70
        config_regexes   = options.config_regexes)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    71
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    72
    try:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    73
        status = action.run()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    74
        if status:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    75
            action.save()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    76
            action.close()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    77
    except configroot2flat.Configroot2FlatFailed, e:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    78
        parser.error(str(e))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    79
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    80
if __name__ == "__main__":
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    81
    main()