def target(internalGameName): if internalGameName is not None and not Game.isValidGame(internalGameName): print("Game name is invalid! Select another.") internalGameName = None if internalGameName is None: game = Game.pick(True) if game is None: untarget() else: config.setTargetGame(game.gamePath) else: #a valid name was inserted config.setTargetGame(Game.fromInternalName(internalGameName).gamePath)
def reactToCommand(command): commandList = utils.parList(command) targetedGame = config.getTargetGame() games = config.getFMCGames() firstCommand = commandList[0]; secondCommand = None if len(commandList) > 1: secondCommand = commandList[1]; #Since platforms are useful for more commands, let's check them here targetAndroid = False targetIOS = False if "android" in commandList: targetAndroid = True if "ios" in commandList: targetIOS = True if not (targetAndroid or targetIOS): targetAndroid = True targetIOS = True if command == "info": printInfo() elif firstCommand == "create": gameName = "" if secondCommand is not None: gameName = secondCommand creator.createNewProject(gameName) elif firstCommand == "untarget": targeter.untarget() else: #if here, we are working on existing games #trying to find the targeted game toTarget = targetedGame if secondCommand is not None: if secondCommand != "" and secondCommand != "all" and not Game.isValidGame(secondCommand): for g in games: if g.internalGameName.startswith(secondCommand) and utils.readYesNo("Did you mean " + g.internalGameName + "?", True): secondCommand = g.internalGameName break if Game.isValidGame(secondCommand): toTarget = Game.fromInternalName(secondCommand) if firstCommand == "target": if toTarget is not None: targeter.target(secondCommand) else: targeter.target(None) elif firstCommand == "unity": if "all" in commandList: Game.launchUnityForAllGames("ask" in commandList) else: if toTarget is None: toTarget = Game.pick(True, "All") if toTarget is None: Game.launchUnityForAllGames("ask" in commandList) #The user selected "All" else: toTarget.launchUnity(None, False) elif firstCommand == "status": if toTarget is not None and secondCommand != "all": toTarget.hasFilesToCommit(True,True) else: gamesWithFilesToCommit = Game.getGamesWithFilesToCommit(True,False) if len(gamesWithFilesToCommit) <= 0: print("CLEAN - All games have no files to commit!") elif firstCommand == "pull": if "all" in commandList: puller.pullAll() else: if toTarget is None: toTarget = Game.pick(True, "All") if toTarget is None: puller.pullAll() #The user selected "All" else: puller.pull(toTarget, True) elif firstCommand == "push": #By default uses targeted game. If overridden, use the given one if toTarget is None: toTarget = Game.pick(False) pusher.push(toTarget) #if targeted game is None, a picker will appear elif firstCommand == "sign": if "all" in commandList: signer.signAll() else: if toTarget is None: toTarget = Game.pick(True, "All") if toTarget is None: signer.signall() #The user selected "All" else: signer.sign(toTarget) elif firstCommand == "build": if "all" in commandList: builder.buildAll(targetAndroid, targetIOS) else: if toTarget is None: toTarget = Game.pick(True, "All") if toTarget is None: builder.buildAll(targetAndroid, targetIOS) #The user selected "All" else: builder.build(toTarget, targetAndroid, targetIOS) elif firstCommand == "ship": if "all" in commandList: shipper.shipAll(targetAndroid, targetIOS) else: if toTarget is None: toTarget = Game.pick(True, "All") if toTarget is None: shipper.shipAll(targetAndroid, targetIOS) #The user selected "All" else: shipper.ship(toTarget, targetAndroid, targetIOS) elif firstCommand == "test": if "all" in commandList: shipper.updateAllIOSTesters() else: if toTarget is None: toTarget = Game.pick(True, "All") if toTarget is None: shipper.updateAllIOSTesters() #The user selected "All" else: shipper.updateIOSTesters(toTarget) elif firstCommand == "check": if "all" in commandList: shipper.checkAllIOS() else: if toTarget is None: toTarget = Game.pick(True, "All") if toTarget is None: shipper.checkAllIOS(targetAndroid, targetIOS) #The user selected "All" else: shipper.checkIOS(toTarget) elif firstCommand == "fill": if "all" in commandList: shipper.fillAllIOSTestInfo() else: if toTarget is None: toTarget = Game.pick(True, "All") if toTarget is None: shipper.fillAllIOSTestInfo() #The user selected "All" else: shipper.fillIOSTestInfo(toTarget) else: if command != "": print("invalid command. Use 'info' to get a list of available commands.")