35 lines
985 B
Go
35 lines
985 B
Go
package windows
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"time"
|
|
|
|
"softbox.local/core/application/launch"
|
|
)
|
|
|
|
// Edition identifies the application build channel shown by the UI.
|
|
type Edition string
|
|
|
|
const EditionLegacy Edition = "Legacy"
|
|
|
|
// ErrUnsupported reports that a Windows-only capability is unavailable on the
|
|
// current host. Callers must treat it as an unknown state, never as a stopped
|
|
// process or a compatible system.
|
|
var ErrUnsupported = errors.New("windows platform capability is unsupported on this host")
|
|
|
|
// Platform is the minimal boundary for target-specific capabilities.
|
|
type Platform interface {
|
|
OS() string
|
|
Edition() Edition
|
|
IsCompatible(minOS string) (bool, error)
|
|
IsRunning(appID, entrypoint string) (bool, error)
|
|
WaitForExit(ctx context.Context, appID, entrypoint string, timeout time.Duration) error
|
|
Start(command launch.Command) (int, error)
|
|
}
|
|
|
|
// New returns the platform implementation selected by build tags.
|
|
func New() Platform {
|
|
return newPlatform()
|
|
}
|