diff --git a/vtqe/tools/attach.go b/vtqe/tools/attach.go index 16cd7f4..0981774 100644 --- a/vtqe/tools/attach.go +++ b/vtqe/tools/attach.go @@ -24,14 +24,14 @@ var attachcmd = &cobra.Command{ out, _ = this.Flags().GetString("out") } if src == "" || dst == "" { - starlog.StdPrintln(0, starlog.RED, "ERROR PATH") + starlog.Criticalln("ERROR PATH") this.Help() return } cryp := new(starainrt.StarCrypto) err := cryp.Attach(src, dst, out) if err != nil { - starlog.StdPrintln(0, starlog.RED, err.Error) + starlog.Criticalln(err.Error) } else { fmt.Println("完成") } diff --git a/vtqe/tools/base64.go b/vtqe/tools/base64.go index 9836ff5..0b7666b 100644 --- a/vtqe/tools/base64.go +++ b/vtqe/tools/base64.go @@ -17,7 +17,7 @@ var b64cmd = &cobra.Command{ ok, _ := this.Flags().GetBool("file") de, _ := this.Flags().GetBool("decode") if len(args) != 1 { - starlog.StdPrintln(0, starlog.RED, "参数不足,请输入文件地址或字符串") + starlog.Criticalln("参数不足,请输入文件地址或字符串") this.Help() return } @@ -47,7 +47,7 @@ var b64cmd = &cobra.Command{ } } if err != nil { - starlog.StdPrintln(0, starlog.RED, err) + starlog.Criticalln(err) return } }, diff --git a/vtqe/tools/cd.go b/vtqe/tools/cd.go index 6b83fce..9f2fb4e 100644 --- a/vtqe/tools/cd.go +++ b/vtqe/tools/cd.go @@ -4,10 +4,13 @@ package tools import ( "bufio" + "fmt" "os" "os/exec" "path/filepath" + "b612.me/starainrt" + "github.com/spf13/cobra" ) @@ -18,7 +21,8 @@ var cdcmd = &cobra.Command{ Run: func(this *cobra.Command, args []string) { fileInfo, _ := os.Stdin.Stat() if (fileInfo.Mode() & os.ModeNamedPipe) != os.ModeNamedPipe { - if len(args) != 1 { + fmt.Println(args) + if len(args) != 0 { os.Exit(1) } else { exec.Command("cmd.exe", "/c", "explorer "+filepath.Dir(args[0])).Run() @@ -27,7 +31,12 @@ var cdcmd = &cobra.Command{ } s := bufio.NewScanner(os.Stdin) for s.Scan() { - exec.Command("cmd.exe", "/c", "explorer "+filepath.Dir(s.Text())).Run() + dir := s.Text() + if starainrt.IsFile(dir) { + exec.Command("cmd.exe", "/c", "explorer /n,/select,"+dir).Run() + } else { + exec.Command("cmd.exe", "/c", "explorer "+dir).Run() + } return } }, diff --git a/vtqe/tools/cmd.go b/vtqe/tools/cmd.go index 2df9bee..17176e4 100644 --- a/vtqe/tools/cmd.go +++ b/vtqe/tools/cmd.go @@ -4,7 +4,7 @@ import ( "github.com/spf13/cobra" ) -var Version string = "0.1.24" +var Version string = "0.1.25" var Maincmd = &cobra.Command{ Use: "", diff --git a/vtqe/tools/detach.go b/vtqe/tools/detach.go index fa9c808..f603aac 100644 --- a/vtqe/tools/detach.go +++ b/vtqe/tools/detach.go @@ -25,14 +25,14 @@ var detachcmd = &cobra.Command{ } num, _ := this.Flags().GetInt("num") if src == "" || dst == "" { - starlog.StdPrintln(0, starlog.RED, "ERROR PATH") + starlog.Criticalln("ERROR PATH") this.Help() return } cryp := new(starainrt.StarCrypto) err := cryp.Detach(src, num, dst, out) if err != nil { - starlog.StdPrintln(0, starlog.RED, err.Error) + starlog.Criticalln(err.Error) } else { fmt.Println("完成") } diff --git a/vtqe/tools/generate.go b/vtqe/tools/generate.go index 2fd5828..f23d5f7 100644 --- a/vtqe/tools/generate.go +++ b/vtqe/tools/generate.go @@ -2,6 +2,8 @@ package tools import ( "fmt" + "os" + "time" "b612.me/starainrt" "github.com/spf13/cobra" @@ -14,26 +16,38 @@ var gencmd = &cobra.Command{ Run: func(this *cobra.Command, args []string) { sum, _ := this.Flags().GetInt("sum") num, _ := this.Flags().GetInt("num") + cap, _ := this.Flags().GetInt("cap") if len(args) != 1 { this.Help() return } - err := starainrt.FillWithRandom(args[0], num, 1024*1024, sum, func(pect float64) { - if pect == 100 { - fmt.Println("文件已处理:100.000000%") - } else { - fmt.Printf("文件已处理:%f%%\r", pect) - } + if num <= 0 { + fmt.Println("num不合法,不应该小于1!") + os.Exit(2) + } + if sum <= 0 { + fmt.Println("sum不合法,不应该小于1!") + os.Exit(2) + } + if cap <= 0 { + fmt.Println("cap不合法,不应该小于1!") + os.Exit(2) + } + err := starainrt.FillWithRandom(args[0], num, cap, sum, func(pect float64) { + fmt.Printf("文件已处理:%f%%\r", pect) }) if err != nil { fmt.Println("err:" + err.Error()) } + fmt.Println("文件已处理:100.0000000%") + time.Sleep(time.Millisecond * 10) }, } func init() { gencmd.Flags().IntP("sum", "s", 3, "随机的种子组数") gencmd.Flags().IntP("num", "n", 1024, "生成的文件大小") + gencmd.Flags().IntP("cap", "c", 1048576, "bufcap大小") gencmd.MarkFlagRequired("num") Maincmd.AddCommand(gencmd) } diff --git a/vtqe/tools/hash.go b/vtqe/tools/hash.go index 2350f5a..cd68a4c 100644 --- a/vtqe/tools/hash.go +++ b/vtqe/tools/hash.go @@ -49,7 +49,7 @@ var hashcmd = &cobra.Command{ result, err = crypto.SumAll([]byte(args[0]), method) } if err != nil { - starlog.StdPrintln(0, starlog.RED, "错误:"+err.Error()) + starlog.Criticalln("错误:" + err.Error()) } for _, v := range method { fmt.Printf("%s:%s\n", v, result[v]) diff --git a/vtqe/tools/http.go b/vtqe/tools/http.go index 75efbb4..715f36a 100644 --- a/vtqe/tools/http.go +++ b/vtqe/tools/http.go @@ -1,6 +1,7 @@ package tools import ( + "encoding/base64" "fmt" "io" "io/ioutil" @@ -19,27 +20,48 @@ import ( var port, ip, path string var up bool +var basicAuth, certKey string type TraceHandler struct { h http.Handler } +func init() { + httpcmd.Flags().StringVarP(&port, "port", "p", "80", "监听端口") + httpcmd.Flags().StringVarP(&ip, "ip", "i", "0.0.0.0", "监听ip") + httpcmd.Flags().StringVarP(&path, "folder", "f", "./", "本地文件地址") + httpcmd.Flags().BoolVarP(&up, "upload", "u", false, "是否开启文件上传") + httpcmd.Flags().StringVarP(&basicAuth, "auth", "a", "", "HTTP BASIC AUTH认证(用户名:密码)") + httpcmd.Flags().StringVarP(&certKey, "cert", "c", "", "TLS证书路径,用:分割证书与密钥") + Maincmd.AddCommand(httpcmd) +} + // httpCmd represents the http command var httpcmd = &cobra.Command{ Use: "http", Short: "HTTP文件服务器", Long: `HTTP文件服务器`, Run: func(cmd *cobra.Command, args []string) { + var err error http.HandleFunc("/", httplisten) path, _ = filepath.Abs(path) - fmt.Println("Listening On Port:" + port) + starlog.Infoln("Listening On Port:" + port) if up { - fmt.Println("upload is openned,path is /vtqeupload1127") + starlog.Infoln("upload is openned,path is /vtqeupload1127") http.HandleFunc("/vtqeupload1127", uploadfile) } - err := http.ListenAndServe(ip+":"+port, nil) + if certKey == "" { + err = http.ListenAndServe(ip+":"+port, nil) + } else { + certs := strings.Split(certKey, ":") + if len(certs) != 2 { + starlog.Criticalln("证书不正确!") + return + } + err = http.ListenAndServeTLS(ip+":"+port, certs[0], certs[1], nil) + } if err != nil { - starlog.StdPrintln(0, starlog.RED, "Error:"+err.Error()) + starlog.Criticalln("Error:" + err.Error()) } }, } @@ -52,18 +74,18 @@ func uploadfile(w http.ResponseWriter, r *http.Request) { r.ParseMultipartForm(10485760) file, handler, err := r.FormFile("victorique") if err != nil { - fmt.Println(err) + starlog.Errorln(err) w.WriteHeader(502) w.Write([]byte(err.Error())) return } defer file.Close() - fmt.Printf("Upload %s From %s\n", handler.Filename, r.RemoteAddr) + starlog.Noticef("Upload %s From %s\n", handler.Filename, r.RemoteAddr) fmt.Fprintf(w, `
%v