@@ -21,6 +21,7 @@ type LoginOpts struct {
2121
2222// temparary Server
2323var tempToken string
24+ var appid int64
2425var tempServer * cmdutil.TempServer
2526
2627func NewLoginCmd () * cobra.Command {
@@ -72,20 +73,70 @@ func doLogin(accessToken string) error {
7273 if err != nil {
7374 return err
7475 }
76+ appid = int64 (resObj .AppID )
7577 creds , _ := json .Marshal (resObj )
7678 err = cmdutil .WriteFile ("token.json" , creds )
7779 if err != nil {
7880 return err
7981 }
8082 fmt .Println ("Successfully Authenticated, Fetching Your Site(s)..." )
81- _ , err = api . GetAppsInfo ()
83+ err = listSites ()
8284 if err != nil {
8385 return err
8486 }
8587 fmt .Println ("Successfully Logged In" )
8688 return nil
8789}
8890
91+ func listSites () error {
92+ m := make (map [int ]int64 )
93+ var option string
94+ var siteChoice int
95+ appInfo , err := api .GetAppsInfo ()
96+ if err != nil {
97+ return err
98+ }
99+ var i int
100+ fmt .Println ("List of sites: " )
101+ for ID , App := range appInfo {
102+ i = i + 1
103+ if appid == ID {
104+ fmt .Println (i , "-" , App .Appname , "(Default site)" )
105+ } else {
106+ fmt .Println (i , "-" , App .Appname )
107+ m [i ] = ID //store ID into map except for the default site
108+ }
109+ }
110+ if len (appInfo ) == 1 {
111+ return nil
112+ }
113+ fmt .Printf ("Do you wish to start with a different site ?(Y/N): " )
114+ fmt .Scanf ("%s\n " , & option )
115+ if option != "Y" {
116+ return nil
117+ }
118+
119+ fmt .Printf ("Enter the corresponding number of the site as displayed above: " )
120+ fmt .Scanf ("%d\n " , & siteChoice )
121+ if siteChoice > len (appInfo ) || siteChoice <= 0 {
122+ fmt .Println ("Invalid choice. Switching to default site." )
123+ return nil
124+ }
125+ if m [siteChoice ] == 0 {
126+ fmt .Println ("This is already the current active site." )
127+ return nil
128+ }
129+ switchId := m [siteChoice ]
130+ switchRespObj , err := api .SetSites (switchId )
131+ err = api .SitesBasic (switchRespObj )
132+ if err != nil {
133+ return err
134+ }
135+ fmt .Println ("Site has been updated." )
136+
137+ return nil
138+ }
139+
89140func validateLogin () bool {
90141 _ , err := cmdutil .ReadFile ("token.json" )
91142 if err != nil {
0 commit comments