func runCommand(commandName string, args []string, sessionObject session.Session, cmdFactory command.CommandFactory) bool { command := cmdFactory.CmdsByName[commandName] cmdFlags := cmdFactory.GetCommandFlags(command) flagValues := getFlagValues(command, cmdFlags, sessionObject, args) configs := cmdFactory.GetCommandConfigs(command, flagValues) if configs.Url == "" && configs.Query == "" && configs.Cookie == "" { help.HelpTemplate(cmdFactory.CmdsByName[commandName].Metadata()) return true } continueFlag, cookie := command.Run(configs) if commandName == loginCommand && continueFlag { //set session object username sessionObject = setSessionUserName(cmdFlags, flagValues) sessionObject.Cookie = cookie success := writeSession(sessionObject) if success { fmt.Println("Your session details are stored.") } else { fmt.Println("Error occured while storing session!") } } return continueFlag }