(handler pl.IHandler)
| 16 | ) |
| 17 | |
| 18 | func RunAsShell(handler pl.IHandler) { |
| 19 | if models.DefaultConf.Tokens != nil && len(models.DefaultConf.Tokens) > 0 { |
| 20 | CurrentUser, _ = six_cloud.LoginWithAccessToken(models.DefaultConf.Tokens[0]) |
| 21 | for _, token := range models.DefaultConf.Tokens { |
| 22 | if user, err := six_cloud.LoginWithAccessToken(token); err == nil { |
| 23 | SavedUsers = append(SavedUsers, user) |
| 24 | } |
| 25 | } |
| 26 | } |
| 27 | App = pl.NewApp() |
| 28 | fmt.Println("欢迎使用6 Pan命令行客户端!") |
| 29 | fmt.Println("开发By Mrs4s") |
| 30 | fmt.Println("使用前请先前往 https://github.com/Mrs4s/six-cli 阅读使用指南") |
| 31 | fmt.Println() |
| 32 | App.SetPrompt("guest@six-pan:/$ ") |
| 33 | App.OnAbort(func(count int32) { |
| 34 | if count < 2 { |
| 35 | fmt.Println("再次键入 Ctrl+C 以确认退出") |
| 36 | return |
| 37 | } |
| 38 | models.DefaultConf.Tokens = []string{} |
| 39 | for ind := range SavedUsers { |
| 40 | models.DefaultConf.Tokens = append(models.DefaultConf.Tokens, SavedUsers[ind].Client.QingzhenToken) |
| 41 | } |
| 42 | models.DefaultConf.SaveFile("config.json") |
| 43 | os.Exit(0) |
| 44 | }) |
| 45 | if CurrentUser != nil { |
| 46 | fmt.Println("自动登录成功, 欢迎您", CurrentUser.Username) |
| 47 | _, _ = fmt.Fprintf(os.Stdout, "当前用量: %s / %s (%.2f%%)\n", |
| 48 | models.ConvertSizeString(CurrentUser.UsedSpace), |
| 49 | models.ConvertSizeString(CurrentUser.TotalSpace), |
| 50 | float64(CurrentUser.UsedSpace)/float64(CurrentUser.TotalSpace)*100) |
| 51 | if len(SavedUsers) > 1 { |
| 52 | for _, user := range SavedUsers { |
| 53 | if user.Identity == CurrentUser.Identity { |
| 54 | fmt.Println("->", user.Username) |
| 55 | continue |
| 56 | } |
| 57 | fmt.Println(user.Username) |
| 58 | } |
| 59 | } |
| 60 | App.SetPrompt(CurrentUser.Username + "@six-pan:/$ ") |
| 61 | } |
| 62 | App.AddHandler(handler) |
| 63 | App.RunAsShell() |
| 64 | } |
| 65 | |
| 66 | func RunAsCli(handler pl.IHandler) { |
| 67 | if models.DefaultConf.Tokens != nil && len(models.DefaultConf.Tokens) > 0 { |
no test coverage detected