MCPcopy Create free account
hub / github.com/Mrs4s/six-cli / RunAsShell

Function RunAsShell

shell/shell.go:18–64  ·  view source on GitHub ↗
(handler pl.IHandler)

Source from the content-addressed store, hash-verified

16)
17
18func 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
66func RunAsCli(handler pl.IHandler) {
67 if models.DefaultConf.Tokens != nil && len(models.DefaultConf.Tokens) > 0 {

Callers 1

mainFunction · 0.92

Calls 3

LoginWithAccessTokenFunction · 0.92
ConvertSizeStringFunction · 0.92
SaveFileMethod · 0.80

Tested by

no test coverage detected