fix: 完善苹果系统构建与文件兼容

动机:解决苹果系统发布包缺少执行权限和特殊文件误处理问题。
改动:校验发布包权限,支持两类芯片架构并改进文件识别。
影响:苹果系统可直接运行发布包,其他平台构建与使用方式兼容。
验证:运行 go test ./...、go vet ./... 和完整发布构建,结果通过。
关联:无
This commit is contained in:
2026-09-07 16:14:11 +08:00
parent a62f5156f0
commit 628bea38be
4 changed files with 127 additions and 38 deletions
+15 -5
View File
@@ -2,17 +2,27 @@ package main
import (
"fmt"
"git.taurusxin.com/taurusxin/ncmdump-go/ncmcrypt"
"git.taurusxin.com/taurusxin/ncmdump-go/utils"
"os"
"path/filepath"
"strings"
"git.taurusxin.com/taurusxin/ncmdump-go/ncmcrypt"
"git.taurusxin.com/taurusxin/ncmdump-go/utils"
flag "github.com/spf13/pflag"
)
// version is replaced by build.sh for release builds.
var version = "1.7.5"
func isNCMFile(filePath string) bool {
baseName := filepath.Base(filePath)
return !strings.HasPrefix(baseName, "._") && strings.EqualFold(filepath.Ext(baseName), ".ncm")
}
func processFile(filePath string, outputDir string) error {
// skip if the extension is not .ncm
if filePath[len(filePath)-4:] != ".ncm" {
if !isNCMFile(filePath) {
return nil
}
@@ -59,7 +69,7 @@ func main() {
}
if *showVersion {
fmt.Println("ncmdump version 1.7.5")
fmt.Printf("ncmdump version %s\n", version)
os.Exit(0)
}
@@ -132,7 +142,7 @@ func main() {
// process files from args
for _, filePath := range flag.Args() {
// skip if the extension is not .ncm
if filePath[len(filePath)-4:] != ".ncm" {
if !isNCMFile(filePath) {
continue
}
if outputDirSpecified {