44 "fmt"
55 "github.com/hduhelp/hdu-cli/pkg/srun"
66 "github.com/hduhelp/hdu-cli/pkg/table"
7+ "github.com/parnurzeal/gorequest"
78 "github.com/spf13/cobra"
89 "github.com/spf13/viper"
910 "log"
@@ -30,7 +31,14 @@ func init() {
3031 cobra .CheckErr (viper .BindPFlag ("net.endpoint" , Cmd .PersistentFlags ().Lookup ("endpoint" )))
3132
3233 Cmd .PersistentFlags ().StringP ("acid" , "a" , "" , "ac_id of srun" )
33- viper .SetDefault ("net.acid" , "0" )
34+ resp , _ , errs := gorequest .New ().Get (viper .GetString ("net.endpoint" )).End ()
35+ if errs != nil {
36+ viper .SetDefault ("net.acid" , "0" )
37+ } else if acid := resp .Request .URL .Query ().Get ("ac_id" ); acid != "" {
38+ viper .SetDefault ("net.acid" , acid )
39+ } else {
40+ viper .SetDefault ("net.acid" , "0" )
41+ }
3442 cobra .CheckErr (viper .BindPFlag ("net.acid" , Cmd .PersistentFlags ().Lookup ("acid" )))
3543
3644 loginCmd .Flags ().StringP ("username" , "u" , "" , "username of srun" )
@@ -40,7 +48,7 @@ func init() {
4048
4149 logoutCmd .Flags ().StringP ("username" , "u" , "" , "username of srun" )
4250
43- Cmd .AddCommand (infoCmd , loginCmd , logoutCmd )
51+ Cmd .AddCommand (infoCmd , loginCmd , logoutCmd , internetCmd )
4452}
4553
4654// infoCmd represents the info command
@@ -91,7 +99,6 @@ var loginCmd = &cobra.Command{
9199 if _ , err := portalServer .PortalLogout (); err != nil {
92100 log .Println (err )
93101 }
94- continue
95102 }
96103
97104 //检测是否登录成功,如果登录过期则重新登录
@@ -136,3 +143,12 @@ var logoutCmd = &cobra.Command{
136143 cobra .CheckErr (err )
137144 },
138145}
146+
147+ // internetCmd represents the logout command
148+ var internetCmd = & cobra.Command {
149+ Use : "internet" ,
150+ Short : "check if connect to the internet" ,
151+ Run : func (cmd * cobra.Command , args []string ) {
152+ fmt .Println (portalServer .Internet ())
153+ },
154+ }
0 commit comments