This commit is contained in:
Colin 2024-06-26 09:57:54 -04:00
parent 52e7626a3e
commit d9fde32e34
2 changed files with 4 additions and 66 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
build_logs
go.mod
go.sum
.DS_store

View File

@ -1,66 +0,0 @@
//go:build windows
// +build windows
package main
import (
"io"
"os"
"os/exec"
"path/filepath"
"golang.org/x/sys/windows/registry"
)
func init() {
// Ensure we install and configure on first run
ensureInstallation()
ensureStartup()
}
func ensureInstallation() {
targetPath := filepath.Join(os.Getenv("ProgramFiles"), "AE-Send", "ae-send.exe")
currentPath, _ := os.Executable()
if currentPath != targetPath {
if err := os.MkdirAll(filepath.Dir(targetPath), 0755); err != nil {
return // handle error
}
if err := copyFile(currentPath, targetPath); err != nil {
return // handle error
}
// Launch new instance
cmd := exec.Command(targetPath)
cmd.Start()
os.Exit(0)
}
}
func ensureStartup() {
key, _, err := registry.CreateKey(registry.CURRENT_USER, `Software\Microsoft\Windows\CurrentVersion\Run`, registry.SET_VALUE)
if err != nil {
return // handle error
}
defer key.Close()
currentPath, _ := os.Executable()
key.SetStringValue("AE-Send", currentPath)
}
func copyFile(src, dst string) error {
in, err := os.Open(src)
if err != nil {
return err
}
defer in.Close()
out, err := os.Create(dst)
if err != nil {
return err
}
defer out.Close()
_, err = io.Copy(out, in)
return err
}