diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 47f6a23..7bdfdfa 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -14,7 +14,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v2 with: - go-version: ^1.18 + go-version: ^1.19 id: go - name: Check out code into the Go module directory @@ -33,23 +33,25 @@ jobs: version=`git describe --tags $hash` flag="-s -w -X main.secret=${{ secrets.API_SECRET }} -X main.measurement=${{ secrets.MEASUREMENT }} -X main.version=$version" go mod tidy - GOOS=windows GOARCH=amd64 go build -ldflags "$flag" -o build/windows-amd64/kaf-cli.exe cmd/cli.go - GOOS=windows GOARCH=386 go build -ldflags "$flag" -o build/windows-386/kaf-cli.exe cmd/cli.go - GOOS=linux GOARCH=amd64 go build -ldflags "$flag" -o build/linux-amd64/kaf-cli cmd/cli.go - GOOS=linux GOARCH=arm64 go build -ldflags "$flag" -o build/linux-arm64/kaf-cli cmd/cli.go - GOOS=darwin GOARCH=amd64 go build -ldflags "$flag" -o build/darwin-amd64/kaf-cli cmd/cli.go - GOOS=darwin GOARCH=arm64 go build -ldflags "$flag" -o build/darwin-arm64/kaf-cli cmd/cli.go + GOOS=windows GOARCH=amd64 go build -ldflags "$flag" -o build/windows-amd64/kaf-cli.exe cmd/cli.go + GOOS=windows GOARCH=386 go build -ldflags "$flag" -o build/windows-386/kaf-cli.exe cmd/cli.go + GOOS=linux GOARCH=amd64 go build -ldflags "$flag" -o build/linux-amd64/kaf-cli cmd/cli.go + GOOS=linux GOARCH=arm64 go build -ldflags "$flag" -o build/linux-arm64/kaf-cli cmd/cli.go + GOOS=linux GOARCH=loong64 go build -ldflags "$flag" -o build/linux-loong64/kaf-cli cmd/cli.go + GOOS=darwin GOARCH=amd64 go build -ldflags "$flag" -o build/darwin-amd64/kaf-cli cmd/cli.go + GOOS=darwin GOARCH=arm64 go build -ldflags "$flag" -o build/darwin-arm64/kaf-cli cmd/cli.go - name: compression zip run: | hash=`git rev-list --tags --max-count=1` version=`git describe --tags $hash` zip -j kaf-cli_${version}_windows_amd64.zip build/windows-amd64/kaf-cli.exe windows/kindlegen.exe - zip -j kaf-cli_${version}_windows_386.zip build/windows-386/kaf-cli.exe windows/kindlegen.exe - zip -j kaf-cli_${version}_darwin_amd64.zip build/darwin-amd64/kaf-cli darwin/kindlegen - zip -j kaf-cli_${version}_darwin_arm64.zip build/darwin-arm64/kaf-cli darwin/kindlegen - zip -j kaf-cli_${version}_linux_amd64.zip build/linux-amd64/kaf-cli - zip -j kaf-cli_${version}_linux_arm64.zip build/linux-arm64/kaf-cli + zip -j kaf-cli_${version}_windows_386.zip build/windows-386/kaf-cli.exe windows/kindlegen.exe + zip -j kaf-cli_${version}_darwin_amd64.zip build/darwin-amd64/kaf-cli darwin/kindlegen + zip -j kaf-cli_${version}_darwin_arm64.zip build/darwin-arm64/kaf-cli darwin/kindlegen + zip -j kaf-cli_${version}_linux_amd64.zip build/linux-amd64/kaf-cli + zip -j kaf-cli_${version}_linux_arm64.zip build/linux-arm64/kaf-cli + zip -j kaf-cli_${version}_linux_loong64.zip build/linux-loong64/kaf-cli - name: Upload release binaries uses: alexellis/upload-assets@0.2.2 diff --git a/convert.go b/convert.go index 2453f47..0177e5a 100644 --- a/convert.go +++ b/convert.go @@ -320,7 +320,7 @@ func (book *Book) Convert() { } hasKinldegen := lookKindlegen() - if isMobi && hasKinldegen == "" { + if book.Format == "mobi" && hasKinldegen == "" { isEpub = false } diff --git a/go.mod b/go.mod index fdca7a5..f6aa688 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,16 @@ require ( github.com/leotaku/mobi v0.0.0-20220405163106-82e29bde7964 github.com/ystyle/google-analytics v0.0.0-20210425064301-a7f754dd0649 golang.org/x/net v0.0.0-20210505024714-0287a6fb4125 + golang.org/x/sys v0.0.0-20210423082822-04245dca01da golang.org/x/text v0.3.7 ) +require ( + github.com/gabriel-vasile/mimetype v1.3.1 // indirect + github.com/gofrs/uuid v3.1.0+incompatible // indirect + github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect +) + replace golang.org/x/text => github.com/golang/text v0.3.2 -go 1.18 +go 1.19 diff --git a/go.sum b/go.sum index 52f8afd..0c8d3c7 100644 --- a/go.sum +++ b/go.sum @@ -17,6 +17,7 @@ github.com/ystyle/google-analytics v0.0.0-20210425064301-a7f754dd0649/go.mod h1: golang.org/x/net v0.0.0-20210505024714-0287a6fb4125 h1:Ugb8sMTWuWRC3+sz5WeN/4kejDx9BvIwnPUiJBjJE+8= golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/tools.go b/tools.go index 6803d49..e8fb6c9 100644 --- a/tools.go +++ b/tools.go @@ -2,11 +2,13 @@ package kafcli import ( "fmt" + "golang.org/x/sys/execabs" "io/ioutil" "math/rand" "os" "os/exec" "path" + "runtime" "strings" "time" ) @@ -30,7 +32,10 @@ func run(command string, args ...string) error { func lookKindlegen() string { command := "kindlegen" - kindlegen, err := exec.LookPath(command) + if runtime.GOOS == "windows" { + command = "kindlegen.exe" + } + kindlegen, err := execabs.LookPath(command) if err != nil { currentDir, err := os.Executable() if err != nil {