configurationengine/source/scripts/cone_tool.py
author terytkon
Thu, 11 Mar 2010 17:04:37 +0200
changeset 0 2e8eeb919028
child 3 e7e0ae78773e
permissions -rw-r--r--
Adding EPL version of configurationengine.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     1
#!/usr/bin/env python
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
# All rights reserved.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
# This component and the accompanying materials are made available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
# under the terms of "Eclipse Public License v1.0"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
# which accompanies this distribution, and is available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
# Initial Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
# Nokia Corporation - initial contribution.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
# Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
# Description: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
import sys
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
if sys.version_info[0] >= 3 or sys.version_info[0] <= 1:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
    print("WARNING: You are using not officially supported Python version:", sys.version_info[0], ".", sys.version_info[1], ".", sys.version_info[2])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    22
    print("Officially supported versions are 2.5 and 2.6")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
    sys.exit(1)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
elif sys.version_info[0] == 2:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    25
    if sys.version_info[1] == 5 or sys.version_info[1] == 6:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
        pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
    elif sys.version_info[1] == 4 or sys.version_info[1] >= 7:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
        print("WARNING: You are using not officially supported Python version:", sys.version_info[0], ".", sys.version_info[1], ".", sys.version_info[2])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
        print("Officially supported versions are 2.5 and 2.6")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
    else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
        print("WARNING: You are using not officially supported Python version:", sys.version_info[0], ".", sys.version_info[1], ".", sys.version_info[2])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
        print("Officially supported versions are 2.5 and 2.6")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
        sys.exit(1)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
import os
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
import fnmatch 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
import re
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
import logging
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
from optparse import OptionParser, OptionGroup
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
import cone
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
import cone_subaction
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
from cone.public import settings
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
CONE_SCRIPT_PATTERN = 'conesub_*.py'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
ROOT_PATH           = os.path.dirname(os.path.abspath(__file__))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
SUBS                = cone_subaction.get_subactions(ROOT_PATH, CONE_SCRIPT_PATTERN)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
ACTIONS             = [sub for sub in SUBS]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
logger              = logging.getLogger('cone')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
VERSION             = cone.__version__
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
if cone._svnrevision not in ("", "exported"):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
    VERSION += " (SVN %s)" % cone._svnrevision
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
CONE_USAGE          = "%prog [action] [options]."
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
CONE_ACTIONS        = '\n'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
for act in ACTIONS:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
     CONE_ACTIONS += '    %s\n' % act
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
CONE_ACTION_HELP    = "Available actions %s\nUse %%prog [action] -h to get action specific help." % CONE_ACTIONS
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    60
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    61
def main():
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    62
    parser = OptionParser(usage="%s\n\n%s" % (CONE_USAGE,CONE_ACTION_HELP),
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    63
                          version="%%prog %s" % VERSION,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    64
                          prog="ConE")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    65
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    66
    # Set the path for cone .cfg files to the same directory as this script
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    67
    settings.SettingsFactory.configpath = ROOT_PATH
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    68
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
    try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
        action = sys.argv[1]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
        subaction = SUBS[action]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
        print "Running action %s" % subaction.name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
    except (IndexError, KeyError):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
        (options, args) = parser.parse_args()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
        parser.error("Action must be given! See --help.")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
    subaction.run()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
if __name__ == "__main__":
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
    main()