Improved/fixed macOS support (#4153)

* Fix macOS notifications
* Change CFBundleIdentifier to match domain
* Distribute Stash.app
* Also build universal phasher binary
* Fix binary name in check_version.go
* Expose GOOS, working dir and home dir in systemStatus endpoint
* Disable setup in working directory when running Stash.app
* More Makefile improvements, remove unused scripts
* Improve READMEs and documentation
This commit is contained in:
DingDongSoLong4
2023-11-19 01:36:13 +02:00
committed by GitHub
parent 72779e618d
commit 4dd4c3c658
21 changed files with 345 additions and 381 deletions

View File

@@ -26,8 +26,8 @@ const defaultSHLength int = 8 // default length of SHA short hash returned by <g
var stashReleases = func() map[string]string {
return map[string]string{
"darwin/amd64": "stash-osx",
"darwin/arm64": "stash-osx-applesilicon",
"darwin/amd64": "stash-macos",
"darwin/arm64": "stash-macos",
"linux/amd64": "stash-linux",
"windows/amd64": "stash-win.exe",
"linux/arm": "stash-linux-arm32v6",

View File

@@ -23,7 +23,8 @@ func sendNotification(notificationTitle string, notificationText string) {
notification := gosxnotifier.NewNotification(notificationText)
notification.Title = notificationTitle
notification.AppIcon = getIconPath()
notification.Link = getServerURL("")
notification.Open = getServerURL("")
notification.Sender = "cc.stashapp.stash"
err := notification.Push()
if err != nil {

View File

@@ -7,6 +7,7 @@ import (
"io"
"os"
"path/filepath"
"runtime"
"runtime/pprof"
"strconv"
"strings"
@@ -46,6 +47,9 @@ type SystemStatus struct {
ConfigPath *string `json:"configPath"`
AppSchema int `json:"appSchema"`
Status SystemStatusEnum `json:"status"`
Os string `json:"os"`
WorkingDir string `json:"working_dir"`
HomeDir string `json:"home_dir"`
}
type SystemStatusEnum string
@@ -740,20 +744,27 @@ func (s *Manager) Migrate(ctx context.Context, input MigrateInput) error {
}
func (s *Manager) GetSystemStatus() *SystemStatus {
workingDir := fsutil.GetWorkingDirectory()
homeDir := fsutil.GetHomeDirectory()
database := s.Database
status := SystemStatusEnumOk
dbSchema := int(database.Version())
dbPath := database.DatabasePath()
appSchema := int(database.AppSchemaVersion())
configFile := s.Config.GetConfigFile()
status := SystemStatusEnumOk
if s.Config.IsNewSystem() {
status = SystemStatusEnumSetup
} else if dbSchema < appSchema {
status = SystemStatusEnumNeedsMigration
}
configFile := s.Config.GetConfigFile()
return &SystemStatus{
Os: runtime.GOOS,
WorkingDir: workingDir,
HomeDir: homeDir,
DatabaseSchema: &dbSchema,
DatabasePath: &dbPath,
AppSchema: appSchema,