From f921d1bbe281f795129a785dab41aee4546abb08 Mon Sep 17 00:00:00 2001 From: HotaruBlaze Date: Tue, 6 Apr 2021 04:15:18 +0000 Subject: [PATCH] Updated and made easier to use. --- loadOrder.txt | 3 --- scripts/build.sh | 6 +++--- src/main.go | 55 ++++++++++++++++++++++-------------------------- 3 files changed, 28 insertions(+), 36 deletions(-) delete mode 100644 loadOrder.txt diff --git a/loadOrder.txt b/loadOrder.txt deleted file mode 100644 index 2684576..0000000 --- a/loadOrder.txt +++ /dev/null @@ -1,3 +0,0 @@ -Morrowind.esm -Tribunal.esm -Bloodmoon.esm \ No newline at end of file diff --git a/scripts/build.sh b/scripts/build.sh index 84d1005..180415e 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -3,19 +3,19 @@ prepareBuild(){ echo -n "Preparing Build Enviroment...\n" rm -rf ./build - mkdir -p ../build ./build/windows ./build/linux + mkdir -p ./build ./build/windows ./build/linux echo -n "Done\n" } # Build Linux buildLinux(){ echo -n "Building Linux Binary...\n" - go build -o ../build/linux/TES3MP-CRC32 ../src/main.go + go build -ldflags "-s -w" -o ./build/linux/TES3MP-CRC32 ./src/main.go echo -n "Done\n" } buildWindows(){ echo -n "Building Windows Binary...\n" - GOOS=windows GOARCH=386 go build -o ../build/windows/TES3MP-CRC32.exe ../src/main.go + GOOS=windows GOARCH=386 go build -ldflags "-s -w" -o ./build/windows/TES3MP-CRC32.exe ./src/main.go echo -n "Done\n" } diff --git a/src/main.go b/src/main.go index 79ad832..4f18dde 100644 --- a/src/main.go +++ b/src/main.go @@ -3,15 +3,11 @@ package main import ( "bufio" "encoding/hex" - "flag" "fmt" "hash/crc32" "io" - "log" "os" - "path" "path/filepath" - "runtime" "strings" ) @@ -51,40 +47,39 @@ func hashFileCRC32(filePath string, polynomial uint32) (string, error) { } func main() { - loadOrderFlag := flag.String("loadOrder", "", "Load order file") - dataFileFlag := flag.String("dataFiles", "", "Data Files Directory") + var validFiles []string + dirname := "." + string(filepath.Separator) + "Data Files" + string(filepath.Separator) - flag.Parse() + d, err := os.Open(dirname) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + defer d.Close() + + files, err := d.Readdir(-1) + if err != nil { + fmt.Println(err) + os.Exit(1) + } - flag.VisitAll(func(f *flag.Flag) { - if f.Value.String() == "" { - if runtime.GOOS == "windows" { - fmt.Println(os.Args[0] + " --loadOrder ./loadOrder.txt" + " --dataFiles \"C:\\games\\TES3MP\\Data Files\"") - } else { - fmt.Println(os.Args[0] + " --loadOrder ./loadOrder.txt" + " --dataFiles \"/home/tes3mp/Data Files\"") + for _, file := range files { + if file.Mode().IsRegular() { + if filepath.Ext(file.Name()) == ".esm" || filepath.Ext(file.Name()) == ".esp" { + validFiles = append(validFiles, file.Name()) } - os.Exit(1) } - }) - - loadOrder, loadOrdererr := os.Open(*loadOrderFlag) - - if loadOrdererr != nil { - log.Fatal(loadOrdererr) } - defer loadOrder.Close() - scanner := bufio.NewScanner(loadOrder) - for scanner.Scan() { - file := path.Join(*dataFileFlag, scanner.Text()) - - hash, err := hashFileCRC32(file, 0xedb88320) + for _, validFile := range validFiles { + validFilePath := "." + string(filepath.Separator) + "Data Files" + string(filepath.Separator) + validFile + hash, err := hashFileCRC32(validFilePath, 0xedb88320) if err == nil { - fmt.Println(filepath.Base(file) + ": " + "0x" + strings.ToUpper(hash)) + fmt.Println(filepath.Base(validFile) + ": " + "0x" + strings.ToUpper(hash)) } } - if err := scanner.Err(); err != nil { - log.Fatal(err) - } + buf := bufio.NewReader(os.Stdin) + fmt.Print("Press enter to close") + _, _ = buf.ReadBytes('\n') }