Ejemplo n.º 1
0
def handleArguments(args):
    """
    Processes a list of arguments.
    
    Creates a new L{ExecutionSettings} and a new L{ExecutionStatus} object.
    Iterates the list of arguments and assigns any known argument value to the given 
    settings or status instance.
    
    @param args: List of arguments to be processed (usually the CLI arguments list)
    @return: Info about success: 0 - not successful, 1 - Signature information is requested,
    2 - successful; The settings applied to the Settings / Status instances
    @rtype: C{int}; L{ExecutionStatus}
    """
    if len(args) < 2:
        usage(args[0])
        return 0, None
    settings = ExecutionSettings(signatures = signatures.getCopyOfAllSignauteres())
    status = ExecutionStatus(settings)
    disabled_signs = []
    for arg in args:
        if arg[0] != '-':
            continue
        if arg[1] == 's':
            status.file_start = int(arg[2:])
        elif arg[1] == 'e':
            status.file_end = int(arg[2:])
        elif arg[1] == 'd':
            settings.digits = int(arg[2:])
        elif arg[1] == 'n':
            settings.counterstart_global = int(arg[2:])
        elif arg[1] == 'f':
            settings.dest_folder = arg[2:]
        elif arg[1] == 'o':
            settings.output_level = int(arg[2:])
        elif arg[1] =='g':
            settings.output_frequency = int(arg[2:])
        elif arg[1] =='i':
            if arg[2] == 's':
                return 1, status
            elif arg[2] == 'd':
                disabled_signs.append(arg[3:])
            else:
                print ('Unrecognised option for Signature operations: %c [Ignored]' %(arg[2]))
        else:
            print ('Unrecognised option: %c [Ignored]' %(arg[1]))
    settings.dest_folder = tools.checkDestfolder(settings.dest_folder)
    settings.sourceFiles.append(args[len(args)-1])
    settings.disableSignatureWithNames(disabled_signs)
    return 2, status