|
|
@@ -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)
|
|
|
}
|