Resolve Windows cross-compilation issue
parent
f6204aca7f
commit
1624767cde
|
@ -4,4 +4,5 @@ dist/
|
|||
gmenu
|
||||
!cmd/gmenu/
|
||||
gtkmenu
|
||||
!cmd/gtkmenu/
|
||||
vendor/
|
||||
|
|
|
@ -4,16 +4,11 @@ import (
|
|||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"sort"
|
||||
"strings"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"git.sr.ht/~tslocum/desktop"
|
||||
"git.sr.ht/~tslocum/gmenu/pkg/config"
|
||||
"github.com/jroimartin/gocui"
|
||||
"github.com/kballard/go-shellquote"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
@ -142,33 +137,5 @@ func listSelect() error {
|
|||
return errors.Wrap(err, "failed to create run script")
|
||||
}
|
||||
|
||||
var cmd *exec.Cmd
|
||||
if runInTerminal {
|
||||
cmd = exec.Command(config.TerminalCommand, "-e", runScript)
|
||||
} else {
|
||||
cmd = exec.Command("/usr/bin/env", "bash", "-c", runScript)
|
||||
}
|
||||
|
||||
cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true, Pgid: 0}
|
||||
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
|
||||
err = cmd.Start()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "failed to start command")
|
||||
}
|
||||
|
||||
if !waitUntilFinished {
|
||||
return gocui.ErrQuit
|
||||
}
|
||||
|
||||
err = cmd.Wait()
|
||||
_, isExitErr := err.(*exec.ExitError)
|
||||
if err != nil && !isExitErr {
|
||||
return errors.Wrap(err, "failed to execute command")
|
||||
}
|
||||
|
||||
return gocui.ErrQuit
|
||||
return run(runScript, waitUntilFinished, runInTerminal)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
// +build linux
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"syscall"
|
||||
|
||||
"git.sr.ht/~tslocum/gmenu/pkg/config"
|
||||
"github.com/jroimartin/gocui"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
func run(runScript string, waitUntilFinished, runInTerminal bool) error {
|
||||
var cmd *exec.Cmd
|
||||
if runInTerminal {
|
||||
cmd = exec.Command(config.TerminalCommand, "-e", runScript)
|
||||
} else {
|
||||
cmd = exec.Command("/usr/bin/env", "bash", "-c", runScript)
|
||||
}
|
||||
|
||||
cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true, Pgid: 0}
|
||||
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
|
||||
err := cmd.Start()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "failed to start command")
|
||||
}
|
||||
|
||||
if !waitUntilFinished {
|
||||
return gocui.ErrQuit
|
||||
}
|
||||
|
||||
err = cmd.Wait()
|
||||
_, isExitErr := err.(*exec.ExitError)
|
||||
if err != nil && !isExitErr {
|
||||
return errors.Wrap(err, "failed to execute command")
|
||||
}
|
||||
|
||||
return gocui.ErrQuit
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
// +build windows
|
||||
|
||||
package main
|
||||
|
||||
func run(runScript string, waitUntilFinished, runInTerminal bool) error {
|
||||
// TODO
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
package gtkmenu
|
||||
|
||||
func main() {}
|
|
@ -1,26 +1,33 @@
|
|||
project_name: gophast
|
||||
project_name: gmenu
|
||||
|
||||
before:
|
||||
hooks:
|
||||
- go mod download
|
||||
builds:
|
||||
-
|
||||
main: ./cmd/gmenu/main.go
|
||||
- binary: gmenu
|
||||
main: ./cmd/gmenu
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
ldflags:
|
||||
- -s -w -X git.sr.ht/~tslocum/gmenu/pkg/config.Version={{.Version}}
|
||||
goos:
|
||||
- linux
|
||||
- windows
|
||||
goarch:
|
||||
- 386
|
||||
- amd64
|
||||
- binary: gtkmenu
|
||||
main: ./cmd/gtkmenu
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
ldflags:
|
||||
- -s -w -X git.sr.ht/~tslocum/gmenu/pkg/config.Version={{.Version}}
|
||||
goos:
|
||||
# - darwin
|
||||
# - freebsd
|
||||
- linux
|
||||
- windows
|
||||
goarch:
|
||||
- 386
|
||||
- amd64
|
||||
# - arm
|
||||
# - arm64
|
||||
# - ppc64
|
||||
# - ppc64le
|
||||
# goarm:
|
||||
# - 6
|
||||
# - 7
|
||||
archive:
|
||||
replacements:
|
||||
386: i386
|
||||
|
|
Loading…
Reference in New Issue