Switch remote deploy to vendored source builds

Move remote deployment to a vendored source bundle built on the target host via Docker so redeploys no longer require local cross-compilation or host Go installation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
GitHub Actions
2026-05-08 12:19:18 +08:00
parent bb27566e38
commit c1a0fe2949
1320 changed files with 497125 additions and 11 deletions

View File

@@ -0,0 +1,49 @@
package logger
import (
"os"
)
// DefaultLogger is a utility to log messages to a number of destinations
type DefaultLogger struct{}
// NewDefaultLogger creates a new Logger.
func NewDefaultLogger() Logger {
return &DefaultLogger{}
}
// Print works like Sprintf.
func (l *DefaultLogger) Print(message string) {
println(message)
}
// Trace level logging. Works like Sprintf.
func (l *DefaultLogger) Trace(message string) {
println("TRA | " + message)
}
// Debug level logging. Works like Sprintf.
func (l *DefaultLogger) Debug(message string) {
println("DEB | " + message)
}
// Info level logging. Works like Sprintf.
func (l *DefaultLogger) Info(message string) {
println("INF | " + message)
}
// Warning level logging. Works like Sprintf.
func (l *DefaultLogger) Warning(message string) {
println("WAR | " + message)
}
// Error level logging. Works like Sprintf.
func (l *DefaultLogger) Error(message string) {
println("ERR | " + message)
}
// Fatal level logging. Works like Sprintf.
func (l *DefaultLogger) Fatal(message string) {
println("FAT | " + message)
os.Exit(1)
}

View File

@@ -0,0 +1,66 @@
package logger
import (
"log"
"os"
)
// FileLogger is a utility to log messages to a number of destinations
type FileLogger struct {
filename string
}
// NewFileLogger creates a new Logger.
func NewFileLogger(filename string) Logger {
return &FileLogger{
filename: filename,
}
}
// Print works like Sprintf.
func (l *FileLogger) Print(message string) {
f, err := os.OpenFile(l.filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644)
if err != nil {
log.Fatal(err)
}
if _, err := f.WriteString(message); err != nil {
f.Close()
log.Fatal(err)
}
f.Close()
}
func (l *FileLogger) Println(message string) {
l.Print(message + "\n")
}
// Trace level logging. Works like Sprintf.
func (l *FileLogger) Trace(message string) {
l.Println("TRACE | " + message)
}
// Debug level logging. Works like Sprintf.
func (l *FileLogger) Debug(message string) {
l.Println("DEBUG | " + message)
}
// Info level logging. Works like Sprintf.
func (l *FileLogger) Info(message string) {
l.Println("INFO | " + message)
}
// Warning level logging. Works like Sprintf.
func (l *FileLogger) Warning(message string) {
l.Println("WARN | " + message)
}
// Error level logging. Works like Sprintf.
func (l *FileLogger) Error(message string) {
l.Println("ERROR | " + message)
}
// Fatal level logging. Works like Sprintf.
func (l *FileLogger) Fatal(message string) {
l.Println("FATAL | " + message)
os.Exit(1)
}

View File

@@ -0,0 +1,72 @@
package logger
import (
"fmt"
"strings"
)
// LogLevel is an unsigned 8bit int
type LogLevel uint8
const (
// TRACE level
TRACE LogLevel = 1
// DEBUG level logging
DEBUG LogLevel = 2
// INFO level logging
INFO LogLevel = 3
// WARNING level logging
WARNING LogLevel = 4
// ERROR level logging
ERROR LogLevel = 5
)
var logLevelMap = map[string]LogLevel{
"trace": TRACE,
"debug": DEBUG,
"info": INFO,
"warning": WARNING,
"error": ERROR,
}
func StringToLogLevel(input string) (LogLevel, error) {
result, ok := logLevelMap[strings.ToLower(input)]
if !ok {
return ERROR, fmt.Errorf("invalid log level: %s", input)
}
return result, nil
}
// String returns the string representation of the LogLevel
func (l LogLevel) String() string {
switch l {
case TRACE:
return "trace"
case DEBUG:
return "debug"
case INFO:
return "info"
case WARNING:
return "warning"
case ERROR:
return "error"
default:
return "debug"
}
}
// Logger specifies the methods required to attach
// a logger to a Wails application
type Logger interface {
Print(message string)
Trace(message string)
Debug(message string)
Info(message string)
Warning(message string)
Error(message string)
Fatal(message string)
}