go-omaha/cmd/serve-package/main.go
Stephen Demos af61458371 cmd: add very simple cmdline omaha server
this implementation uses the TrivialServer that is already provided by
the go-omaha library. it is a very simple wrapper, simply asking for the
file, version, and listening address on the command line. it can only
handle one package at a time, naming the payload from the server
"update.gz", which is the standard filename for the update payload. the
additional metadata required for package creation is generated based on
the provided file. when the server is setup, update_engine can be
pointed at it by setting the SERVER variable in /etc/coreos/update.conf
2017-12-07 16:16:34 -08:00

46 lines
955 B
Go

package main
import (
"flag"
"fmt"
"os"
"github.com/coreos/go-omaha/omaha"
)
func main() {
pkgfile := flag.String("package-file", "", "Path to the update payload")
version := flag.String("package-version", "", "Semantic version of the package provided")
listenAddress := flag.String("listen-address", ":8000", "Host and IP to listen on")
flag.Parse()
if *pkgfile == "" {
fmt.Println("package-file is a required flag")
os.Exit(1)
}
if *version == "" {
fmt.Println("package-version is a required flag")
os.Exit(1)
}
server, err := omaha.NewTrivialServer(*listenAddress)
if err != nil {
fmt.Printf("failed to make new server: %v\n", err)
os.Exit(1)
}
server.SetVersion(*version)
err = server.AddPackage(*pkgfile, "update.gz")
if err != nil {
fmt.Printf("failed to add package: %v\n", err)
os.Exit(1)
}
err = server.Serve()
if err != nil {
fmt.Printf("server exited with an error: %v\n", err)
os.Exit(1)
}
}