Example #1
0
def createTask(creatorArgs):
    recurrProperArgs = ['recur', 'r', 'recurring']
    oneOffProperArgs = ['once', 'o', 'oneoff']
    argAmount = len(creatorArgs)
    silentMode = False
    if argAmount >= 1 and creatorArgs[0] == 'help':
        OutputWriter.creatorHelp()
        return 0
    if argAmount >= 1 and creatorArgs[0] == 's':
        silentMode = True
        creatorArgs = creatorArgs[1:]
        argAmount = argAmount - 1
    if argAmount == 0:
        isRecurring = InputReader.promptForIsRecurring()
    else:
        isRecurringCandidate = creatorArgs[0]
        if isRecurringCandidate in recurrProperArgs:
            isRecurring = True
        elif isRecurringCandidate in oneOffProperArgs:
            isRecurring = False
        else:
            OutputWriter.wrongInputMessage(creatorArgs[0], '-c')
            return 1
    taskDets = creatorArgs[1:]
    argsOk, wrongArg = InputReader.verifyAndPrepRecurrArgs(
        taskDets) if isRecurring else InputReader.verifyAndPrepOneOffArgs(
            taskDets)
    if not argsOk:
        OutputWriter.wrongInputMessage(wrongArg, '-c')
        return 1
    else:
        taskToAdd = Task(
            True,
            InputReader.createRecurring(taskDets)) if isRecurring else Task(
                False, InputReader.createOneOff(taskDets))
    if isRecurring:
        if argAmount <= 1 or (silentMode
                              or InputReader.askToAddRecurr(taskToAdd)):
            FileWriter.addRecurring(taskToAdd)
    else:
        if argAmount <= 1 or (silentMode
                              or InputReader.askToAddOneOff(taskToAdd)):
            FileWriter.addOneOff(taskToAdd)
    return 0