Fix Windows launcher

This commit is contained in:
Michael Herrmann 2019-03-11 15:55:01 +01:00
parent 8b3634852d
commit 801b0a1fd6
2 changed files with 21 additions and 3 deletions

View File

@ -69,7 +69,8 @@ launcher-windows: build-windows
if exist "bin\windows\Aminal" rmdir /S /Q "bin\windows\Aminal" if exist "bin\windows\Aminal" rmdir /S /Q "bin\windows\Aminal"
mkdir "bin\windows\Aminal\Versions\${VERSION}" mkdir "bin\windows\Aminal\Versions\${VERSION}"
go build -o "bin\windows\Aminal\${BINARY}.exe" -ldflags "-H windowsgui" "${GEN_SRC_DIR}\launcher" go build -o "bin\windows\Aminal\${BINARY}.exe" -ldflags "-H windowsgui" "${GEN_SRC_DIR}\launcher"
copy ${BINARY}-windows-amd64.exe "bin\windows\Aminal\Versions\${VERSION}\${BINARY}.exe" /Y windres -o aminal.syso aminal.rc
go build -o "bin\windows\Aminal\Versions\${VERSION}\${BINARY}.exe" -ldflags "-H windowsgui"
IF "${WINDOWS_CODESIGNING_CERT_PW}"=="" ECHO Environment variable WINDOWS_CODESIGNING_CERT_PW is not defined. & exit 1 IF "${WINDOWS_CODESIGNING_CERT_PW}"=="" ECHO Environment variable WINDOWS_CODESIGNING_CERT_PW is not defined. & exit 1
signtool sign /f windows\codesigning_certificate.pfx /p "${WINDOWS_CODESIGNING_CERT_PW}" /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp bin\windows\Aminal\${BINARY}.exe signtool sign /f windows\codesigning_certificate.pfx /p "${WINDOWS_CODESIGNING_CERT_PW}" /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp bin\windows\Aminal\${BINARY}.exe
signtool sign /f windows\codesigning_certificate.pfx /p "${WINDOWS_CODESIGNING_CERT_PW}" /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /as /fd sha256 /td sha256 bin\windows\Aminal\${BINARY}.exe signtool sign /f windows\codesigning_certificate.pfx /p "${WINDOWS_CODESIGNING_CERT_PW}" /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /as /fd sha256 /td sha256 bin\windows\Aminal\${BINARY}.exe

View File

@ -22,11 +22,13 @@ import (
"io/ioutil" "io/ioutil"
"os" "os"
"os/exec" "os/exec"
"os/user"
"path/filepath" "path/filepath"
"sort" "sort"
"strconv" "strconv"
"strings" "strings"
"github.com/liamg/aminal/windows/winutil" "github.com/liamg/aminal/windows/winutil"
"syscall"
) )
type Version struct { type Version struct {
@ -42,8 +44,23 @@ func main() {
versionsDir := filepath.Join(executableDir, "Versions") versionsDir := filepath.Join(executableDir, "Versions")
latestVersion, err := getLatestVersion(versionsDir) latestVersion, err := getLatestVersion(versionsDir)
check(err) check(err)
target := filepath.Join(versionsDir, latestVersion, executableName) usr, err := user.Current()
cmd := exec.Command(target, os.Args[1:]...) check(err)
cmd := exec.Command("C:\\Windows\\System32\\cmd.exe", "/C", "start", "Aminal", "/B", executableName)
cmd.Dir = usr.HomeDir
latestVersionDir := filepath.Join(versionsDir, latestVersion)
path, pathSet := os.LookupEnv("PATH")
if (pathSet) {
path += ";" + latestVersionDir
} else {
path = latestVersionDir
}
cmd.Env = append(os.Environ(), "PATH=" + path)
const CREATE_NO_WINDOW = 0x08000000
cmd.SysProcAttr = &syscall.SysProcAttr{
HideWindow: true,
CreationFlags: CREATE_NO_WINDOW,
}
check(cmd.Start()) check(cmd.Start())
} }