fixed error formatting

This commit is contained in:
aomizu
2025-06-04 11:30:45 +09:00
parent 3a2d10b17b
commit e5ff89b8c6
6 changed files with 51 additions and 25 deletions

View File

@@ -16,7 +16,7 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v5 uses: actions/setup-go@v5
with: with:
go-version: '1.24.3' go-version: '1.21'
- name: Install Fyne dependencies - name: Install Fyne dependencies
run: | run: |
@@ -26,6 +26,12 @@ jobs:
- name: Install Fyne CLI - name: Install Fyne CLI
run: go install fyne.io/fyne/v2/cmd/fyne@latest run: go install fyne.io/fyne/v2/cmd/fyne@latest
- name: Set environment variables
run: |
echo "CGO_ENABLED=1" >> $GITHUB_ENV
echo "GOOS=darwin" >> $GITHUB_ENV
echo "GOARCH=arm64" >> $GITHUB_ENV
- name: Cache Go modules - name: Cache Go modules
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
@@ -40,6 +46,17 @@ jobs:
- name: Verify dependencies - name: Verify dependencies
run: go mod verify run: go mod verify
- name: Check code formatting
run: |
if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then
echo "Code is not properly formatted. Please run 'gofmt -s -w .'"
gofmt -s -l .
exit 1
fi
- name: Run go vet
run: go vet ./...
- name: Run tests - name: Run tests
run: go test -v ./... run: go test -v ./...

View File

@@ -3,4 +3,4 @@
Name = "TurtleSilicon" Name = "TurtleSilicon"
ID = "com.tairasu.turtlesilicon" ID = "com.tairasu.turtlesilicon"
Version = "1.1.2" Version = "1.1.2"
Build = 25 Build = 26

8
go.mod
View File

@@ -1,8 +1,11 @@
module turtlesilicon module turtlesilicon
go 1.24.3 go 1.21
require fyne.io/fyne/v2 v2.6.1 require (
fyne.io/fyne/v2 v2.6.1
github.com/zalando/go-keyring v0.2.6
)
require ( require (
al.essio.dev/pkg/shellescape v1.5.1 // indirect al.essio.dev/pkg/shellescape v1.5.1 // indirect
@@ -34,7 +37,6 @@ require (
github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef // indirect github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef // indirect
github.com/stretchr/testify v1.10.0 // indirect github.com/stretchr/testify v1.10.0 // indirect
github.com/yuin/goldmark v1.7.8 // indirect github.com/yuin/goldmark v1.7.8 // indirect
github.com/zalando/go-keyring v0.2.6 // indirect
golang.org/x/image v0.24.0 // indirect golang.org/x/image v0.24.0 // indirect
golang.org/x/net v0.35.0 // indirect golang.org/x/net v0.35.0 // indirect
golang.org/x/sys v0.30.0 // indirect golang.org/x/sys v0.30.0 // indirect

4
go.sum
View File

@@ -39,6 +39,8 @@ github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/google/pprof v0.0.0-20211214055906-6f57359322fd h1:1FjCyPC+syAzJ5/2S8fqdZK1R22vvA0J7JZKcuOIQ7Y= github.com/google/pprof v0.0.0-20211214055906-6f57359322fd h1:1FjCyPC+syAzJ5/2S8fqdZK1R22vvA0J7JZKcuOIQ7Y=
github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/hack-pad/go-indexeddb v0.3.2 h1:DTqeJJYc1usa45Q5r52t01KhvlSN02+Oq+tQbSBI91A= github.com/hack-pad/go-indexeddb v0.3.2 h1:DTqeJJYc1usa45Q5r52t01KhvlSN02+Oq+tQbSBI91A=
github.com/hack-pad/go-indexeddb v0.3.2/go.mod h1:QvfTevpDVlkfomY498LhstjwbPW6QC4VC/lxYb0Kom0= github.com/hack-pad/go-indexeddb v0.3.2/go.mod h1:QvfTevpDVlkfomY498LhstjwbPW6QC4VC/lxYb0Kom0=
github.com/hack-pad/safejs v0.1.0 h1:qPS6vjreAqh2amUqj4WNG1zIw7qlRQJ9K10eDKMCnE8= github.com/hack-pad/safejs v0.1.0 h1:qPS6vjreAqh2amUqj4WNG1zIw7qlRQJ9K10eDKMCnE8=
@@ -65,6 +67,8 @@ github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c h1:km8GpoQut05eY3GiY
github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c/go.mod h1:cNQ3dwVJtS5Hmnjxy6AgTPd0Inb3pW05ftPSX7NZO7Q= github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c/go.mod h1:cNQ3dwVJtS5Hmnjxy6AgTPd0Inb3pW05ftPSX7NZO7Q=
github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef h1:Ch6Q+AZUxDBCVqdkI8FSpFyZDtCVBc2VmejdNrm5rRQ= github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef h1:Ch6Q+AZUxDBCVqdkI8FSpFyZDtCVBc2VmejdNrm5rRQ=
github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef/go.mod h1:nXTWP6+gD5+LUJ8krVhhoeHjvHTutPxMYl5SvkcnJNE= github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef/go.mod h1:nXTWP6+gD5+LUJ8krVhhoeHjvHTutPxMYl5SvkcnJNE=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/yuin/goldmark v1.7.8 h1:iERMLn0/QJeHFhxSt3p6PeN9mGnvIKSpG9YYorDMnic= github.com/yuin/goldmark v1.7.8 h1:iERMLn0/QJeHFhxSt3p6PeN9mGnvIKSpG9YYorDMnic=

View File

@@ -2,6 +2,7 @@ package patching
import ( import (
"bytes" "bytes"
"errors"
"fmt" "fmt"
"io" "io"
"log" "log"
@@ -10,10 +11,11 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/dialog"
"turtlesilicon/pkg/paths" // Corrected import path "turtlesilicon/pkg/paths" // Corrected import path
"turtlesilicon/pkg/utils" // Corrected import path "turtlesilicon/pkg/utils" // Corrected import path
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/dialog"
) )
func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) { func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
@@ -39,7 +41,7 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
resource, err := fyne.LoadResourceFromPath(resourceName) resource, err := fyne.LoadResourceFromPath(resourceName)
if err != nil { if err != nil {
errMsg := fmt.Sprintf("failed to open bundled resource %s: %v", resourceName, err) errMsg := fmt.Sprintf("failed to open bundled resource %s: %v", resourceName, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
paths.PatchesAppliedTurtleWoW = false paths.PatchesAppliedTurtleWoW = false
updateAllStatuses() updateAllStatuses()
@@ -49,7 +51,7 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
destinationFile, err := os.Create(destPath) destinationFile, err := os.Create(destPath)
if err != nil { if err != nil {
errMsg := fmt.Sprintf("failed to create destination file %s: %v", destPath, err) errMsg := fmt.Sprintf("failed to create destination file %s: %v", destPath, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
paths.PatchesAppliedTurtleWoW = false paths.PatchesAppliedTurtleWoW = false
updateAllStatuses() updateAllStatuses()
@@ -60,7 +62,7 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
_, err = io.Copy(destinationFile, bytes.NewReader(resource.Content())) _, err = io.Copy(destinationFile, bytes.NewReader(resource.Content()))
if err != nil { if err != nil {
errMsg := fmt.Sprintf("failed to copy bundled resource %s to %s: %v", resourceName, destPath, err) errMsg := fmt.Sprintf("failed to copy bundled resource %s to %s: %v", resourceName, destPath, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
paths.PatchesAppliedTurtleWoW = false paths.PatchesAppliedTurtleWoW = false
updateAllStatuses() updateAllStatuses()
@@ -75,7 +77,7 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
} }
if err := os.MkdirAll(targetRosettaX87Dir, 0755); err != nil { if err := os.MkdirAll(targetRosettaX87Dir, 0755); err != nil {
errMsg := fmt.Sprintf("failed to create directory %s: %v", targetRosettaX87Dir, err) errMsg := fmt.Sprintf("failed to create directory %s: %v", targetRosettaX87Dir, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
paths.PatchesAppliedTurtleWoW = false paths.PatchesAppliedTurtleWoW = false
updateAllStatuses() updateAllStatuses()
@@ -92,7 +94,7 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
resource, err := fyne.LoadResourceFromPath(resourceName) resource, err := fyne.LoadResourceFromPath(resourceName)
if err != nil { if err != nil {
errMsg := fmt.Sprintf("failed to open bundled resource %s: %v", resourceName, err) errMsg := fmt.Sprintf("failed to open bundled resource %s: %v", resourceName, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
paths.PatchesAppliedTurtleWoW = false paths.PatchesAppliedTurtleWoW = false
updateAllStatuses() updateAllStatuses()
@@ -102,7 +104,7 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
destinationFile, err := os.Create(destPath) destinationFile, err := os.Create(destPath)
if err != nil { if err != nil {
errMsg := fmt.Sprintf("failed to create destination file %s: %v", destPath, err) errMsg := fmt.Sprintf("failed to create destination file %s: %v", destPath, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
paths.PatchesAppliedTurtleWoW = false paths.PatchesAppliedTurtleWoW = false
updateAllStatuses() updateAllStatuses()
@@ -113,7 +115,7 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
if err != nil { if err != nil {
destinationFile.Close() destinationFile.Close()
errMsg := fmt.Sprintf("failed to copy bundled resource %s to %s: %v", resourceName, destPath, err) errMsg := fmt.Sprintf("failed to copy bundled resource %s to %s: %v", resourceName, destPath, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
paths.PatchesAppliedTurtleWoW = false paths.PatchesAppliedTurtleWoW = false
updateAllStatuses() updateAllStatuses()
@@ -125,7 +127,7 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
log.Printf("Setting execute permission for %s", destPath) log.Printf("Setting execute permission for %s", destPath)
if err := os.Chmod(destPath, 0755); err != nil { if err := os.Chmod(destPath, 0755); err != nil {
errMsg := fmt.Sprintf("failed to set execute permission for %s: %v", destPath, err) errMsg := fmt.Sprintf("failed to set execute permission for %s: %v", destPath, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
paths.PatchesAppliedTurtleWoW = false paths.PatchesAppliedTurtleWoW = false
updateAllStatuses() updateAllStatuses()
@@ -162,7 +164,7 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
fileContentBytes, err = os.ReadFile(dllsTextFile) fileContentBytes, err = os.ReadFile(dllsTextFile)
if err != nil { if err != nil {
errMsg := fmt.Sprintf("failed to read dlls.txt for update: %v", err) errMsg := fmt.Sprintf("failed to read dlls.txt for update: %v", err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
} }
} }
@@ -189,7 +191,7 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
if err := os.WriteFile(dllsTextFile, []byte(updatedContent), 0644); err != nil { if err := os.WriteFile(dllsTextFile, []byte(updatedContent), 0644); err != nil {
errMsg := fmt.Sprintf("failed to update dlls.txt: %v", err) errMsg := fmt.Sprintf("failed to update dlls.txt: %v", err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
} else { } else {
log.Printf("Successfully updated dlls.txt") log.Printf("Successfully updated dlls.txt")
@@ -232,7 +234,7 @@ func PatchCrossOver(myWindow fyne.Window, updateAllStatuses func()) {
combinedOutput, err := cmd.CombinedOutput() combinedOutput, err := cmd.CombinedOutput()
if err != nil { if err != nil {
derrMsg := fmt.Sprintf("failed to remove signature from %s: %v\nOutput: %s", wineloaderCopy, err, string(combinedOutput)) derrMsg := fmt.Sprintf("failed to remove signature from %s: %v\nOutput: %s", wineloaderCopy, err, string(combinedOutput))
dialog.ShowError(fmt.Errorf(derrMsg), myWindow) dialog.ShowError(errors.New(derrMsg), myWindow)
log.Println(derrMsg) log.Println(derrMsg)
paths.PatchesAppliedCrossOver = false paths.PatchesAppliedCrossOver = false
if err := os.Remove(wineloaderCopy); err != nil { if err := os.Remove(wineloaderCopy); err != nil {
@@ -246,7 +248,7 @@ func PatchCrossOver(myWindow fyne.Window, updateAllStatuses func()) {
log.Printf("Setting execute permissions for %s", wineloaderCopy) log.Printf("Setting execute permissions for %s", wineloaderCopy)
if err := os.Chmod(wineloaderCopy, 0755); err != nil { if err := os.Chmod(wineloaderCopy, 0755); err != nil {
errMsg := fmt.Sprintf("failed to set executable permissions for %s: %v", wineloaderCopy, err) errMsg := fmt.Sprintf("failed to set executable permissions for %s: %v", wineloaderCopy, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
paths.PatchesAppliedCrossOver = false paths.PatchesAppliedCrossOver = false
updateAllStatuses() updateAllStatuses()
@@ -278,7 +280,7 @@ func UnpatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
log.Printf("Removing directory: %s", rosettaX87DirPath) log.Printf("Removing directory: %s", rosettaX87DirPath)
if err := os.RemoveAll(rosettaX87DirPath); err != nil { if err := os.RemoveAll(rosettaX87DirPath); err != nil {
errMsg := fmt.Sprintf("failed to remove directory %s: %v", rosettaX87DirPath, err) errMsg := fmt.Sprintf("failed to remove directory %s: %v", rosettaX87DirPath, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
} else { } else {
log.Printf("Successfully removed directory: %s", rosettaX87DirPath) log.Printf("Successfully removed directory: %s", rosettaX87DirPath)
@@ -292,7 +294,7 @@ func UnpatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
log.Printf("Removing file: %s", file) log.Printf("Removing file: %s", file)
if err := os.Remove(file); err != nil { if err := os.Remove(file); err != nil {
errMsg := fmt.Sprintf("failed to remove file %s: %v", file, err) errMsg := fmt.Sprintf("failed to remove file %s: %v", file, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
} else { } else {
log.Printf("Successfully removed file: %s", file) log.Printf("Successfully removed file: %s", file)
@@ -306,7 +308,7 @@ func UnpatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
content, err := os.ReadFile(dllsTextFile) content, err := os.ReadFile(dllsTextFile)
if err != nil { if err != nil {
errMsg := fmt.Sprintf("failed to read dlls.txt file: %v", err) errMsg := fmt.Sprintf("failed to read dlls.txt file: %v", err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
} else { } else {
lines := strings.Split(string(content), "\n") lines := strings.Split(string(content), "\n")
@@ -322,7 +324,7 @@ func UnpatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) {
updatedContent := strings.Join(filteredLines, "\n") updatedContent := strings.Join(filteredLines, "\n")
if err := os.WriteFile(dllsTextFile, []byte(updatedContent), 0644); err != nil { if err := os.WriteFile(dllsTextFile, []byte(updatedContent), 0644); err != nil {
errMsg := fmt.Sprintf("failed to update dlls.txt file: %v", err) errMsg := fmt.Sprintf("failed to update dlls.txt file: %v", err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
} else { } else {
log.Printf("Successfully updated dlls.txt file") log.Printf("Successfully updated dlls.txt file")
@@ -349,7 +351,7 @@ func UnpatchCrossOver(myWindow fyne.Window, updateAllStatuses func()) {
log.Printf("Removing file: %s", wineloaderCopy) log.Printf("Removing file: %s", wineloaderCopy)
if err := os.Remove(wineloaderCopy); err != nil { if err := os.Remove(wineloaderCopy); err != nil {
errMsg := fmt.Sprintf("failed to remove file %s: %v", wineloaderCopy, err) errMsg := fmt.Sprintf("failed to remove file %s: %v", wineloaderCopy, err)
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
updateAllStatuses() updateAllStatuses()
return return

View File

@@ -2,6 +2,7 @@ package utils
import ( import (
"encoding/json" "encoding/json"
"errors"
"fmt" "fmt"
"io" "io"
"log" "log"
@@ -99,7 +100,7 @@ func RunOsascript(scriptString string, myWindow fyne.Window) bool {
output, err := cmd.CombinedOutput() output, err := cmd.CombinedOutput()
if err != nil { if err != nil {
errMsg := fmt.Sprintf("AppleScript failed: %v\nOutput: %s", err, string(output)) errMsg := fmt.Sprintf("AppleScript failed: %v\nOutput: %s", err, string(output))
dialog.ShowError(fmt.Errorf(errMsg), myWindow) dialog.ShowError(errors.New(errMsg), myWindow)
log.Println(errMsg) log.Println(errMsg)
return false return false
} }