feat: автообновление бинаря из Gitea Packages (/update, /status, авто-уведомление)
All checks were successful
CI / test (push) Successful in 47s
CI / build-and-package (amd64, darwin) (push) Successful in 40s
CI / build-and-package (amd64, linux) (push) Successful in 40s
CI / build-and-package (amd64, windows) (push) Successful in 39s
CI / build-and-package (arm64, darwin) (push) Successful in 40s
CI / build-and-package (arm64, linux) (push) Successful in 40s
All checks were successful
CI / test (push) Successful in 47s
CI / build-and-package (amd64, darwin) (push) Successful in 40s
CI / build-and-package (amd64, linux) (push) Successful in 40s
CI / build-and-package (amd64, windows) (push) Successful in 39s
CI / build-and-package (arm64, darwin) (push) Successful in 40s
CI / build-and-package (arm64, linux) (push) Successful in 40s
This commit is contained in:
@@ -14,17 +14,22 @@ import (
|
||||
"github.com/kamelion/ratatoskr-go/internal/app"
|
||||
)
|
||||
|
||||
// version — версия бинаря, вшивается при сборке:
|
||||
// go build -ldflags "-X main.version=<commit-sha7>"
|
||||
// Локальная сборка без ldflags оставляет "dev".
|
||||
var version = "dev"
|
||||
|
||||
func main() {
|
||||
cfg := flag.String("config", "", "путь к config.yaml (по умолчанию — CWD/config.yaml)")
|
||||
version := flag.Bool("version", false, "показать версию и выйти")
|
||||
versionFlag := flag.Bool("version", false, "показать версию и выйти")
|
||||
flag.Parse()
|
||||
|
||||
if *version {
|
||||
fmt.Println("ratatoskr-go dev (переезд с Ratatoskr Python)")
|
||||
if *versionFlag {
|
||||
fmt.Println("ratatoskr-go " + version)
|
||||
return
|
||||
}
|
||||
|
||||
a, err := app.New(*cfg)
|
||||
a, err := app.New(*cfg, version)
|
||||
if err != nil {
|
||||
log.Fatalf("app init: %v", err)
|
||||
}
|
||||
@@ -34,6 +39,14 @@ func main() {
|
||||
}
|
||||
}()
|
||||
|
||||
// Применить отложенный свап обновления (из предыдущего /update на Windows
|
||||
// или отложенной замены), если есть .new рядом с бинарём. До старта подсистем.
|
||||
if a.Updater != nil {
|
||||
if err := a.Updater.ApplyPendingSwap(); err != nil {
|
||||
log.Printf("ratatoskr: apply-pending-swap: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
log.Print("ratatoskr: запущен")
|
||||
if err := a.Run(context.Background()); err != nil {
|
||||
log.Fatalf("app run: %v", err)
|
||||
|
||||
Reference in New Issue
Block a user