Selaa lähdekoodia

输入参数使用argparse,增加go.mod(go build)

kinve 1 vuosi sitten
vanhempi
sitoutus
7c3772c000
4 muutettua tiedostoa jossa 19 lisäystä ja 39 poistoa
  1. 5 0
      go.mod
  2. 2 0
      go.sum
  3. BIN
      main.exe
  4. 12 39
      main.go

+ 5 - 0
go.mod

@@ -0,0 +1,5 @@
+module main
+
+go 1.22.5
+
+require github.com/akamensky/argparse v1.4.0 // indirect

+ 2 - 0
go.sum

@@ -0,0 +1,2 @@
+github.com/akamensky/argparse v1.4.0 h1:YGzvsTqCvbEZhL8zZu2AiA5nq805NZh75JNj4ajn1xc=
+github.com/akamensky/argparse v1.4.0/go.mod h1:S5kwC7IuDcEr5VeXtGPRVZ5o/FdhcMlQz4IZQuw64xA=

BIN
main.exe


+ 12 - 39
main.go

@@ -9,7 +9,8 @@ import (
 	"io/ioutil"
 	"os"
 	"path/filepath"
-	"strconv"
+
+	"github.com/akamensky/argparse"
 )
 
 func swab16(x uint16) uint16 {
@@ -151,43 +152,15 @@ func ReadBinFile(_name string, _type string, _en string, _block int) {
 }
 
 func main() {
-	// parser.add_argument("n", help="bin文件名,譬如 COAB21232D.bin")
-	// parser.add_argument("-t", help="校验方式:sum32,crc32, 默认sum32")
-	// parser.add_argument("-e", help="校验码大小端:little,big, 默认little")
-	// parser.add_argument("-s", help="分块大小:0,1024,2048, 默认0不分块")
-
-	// 参数解析
-	// var _name = flag.String("n", "COAB21232D.bin", "bin文件名,譬如 COAB21232D.bin")
-	// var _type = flag.String("-t", "sum32", "校验方式:sum32,crc32, 默认sum32")
-	// var _en = flag.String("-e", "little", "校验码大小端:little,big, 默认little")
-	// var _block = flag.Int("-s", 0, "代理,譬如 分块大小:0,1024,2048, 默认0不分块")
-	// // 解析命令行参数
-	// flag.Parse()
-
-	_name := ""
-	_type := "sum32"
-	_en := "little"
-	_block := 0
-	for i, num := range os.Args[1:] {
-		switch i {
-		case 0:
-			_name = num
-		case 1:
-			_type = num
-		case 2:
-			_en = num
-		case 3:
-			numInt, err := strconv.Atoi(num)
-			if err != nil {
-				// 处理转换错误
-				fmt.Println("转换错误:", err)
-				return
-			}
-			_block = numInt
-		default:
-			fmt.Println("未知参数")
-		}
+	parser := argparse.NewParser("goChecknum", "这是一个用于固件校验码工具, 制作升级文件")
+	_name := parser.String("n", "name", &argparse.Options{Required: true, Help: "bin文件名, 譬如 COAB21232D.bin", Default: ""})
+	_type := parser.String("t", "type", &argparse.Options{Required: false, Help: "校验方式: sum32,crc32, 默认sum32", Default: "sum32"})
+	_en := parser.String("e", "en", &argparse.Options{Required: false, Help: "校验码大小端: little,big, 默认little", Default: "little"})
+	_section := parser.Int("s", "section", &argparse.Options{Required: false, Help: "分块大小: 0,1024,2048, 默认0不分块", Default: 0})
+	err := parser.Parse(os.Args)
+	if err != nil {
+		fmt.Print(parser.Usage(err)) // 帮助 -h or --help
+		return
 	}
-
-	ReadBinFile(_name, _type, _en, _block)
+	ReadBinFile(*_name, *_type, *_en, *_section)
 }