diff --git a/.gitignore b/.gitignore index 5fff1d9..076e7fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ pkg +bin + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..eb1293a --- /dev/null +++ b/Makefile @@ -0,0 +1,25 @@ +# kernel-style V=1 build verbosity +ifeq ("$(origin V)", "command line") + BUILD_VERBOSE = $(V) +endif + +ifeq ($(BUILD_VERBOSE),1) + Q = +else + Q = @ +endif + +.PHONY: all +all: bin/serve-package + +bin/serve-package: + $(Q)go build -o $@ cmd/serve-package/main.go + +.PHONY: clean +clean: + $(Q)rm -rf bin + +.PHONY: vendor +vendor: + $(Q)glide update --strip-vendor + $(Q)glide-vc --use-lock-file --no-tests --only-code diff --git a/cmd/serve-package/main.go b/cmd/serve-package/main.go new file mode 100644 index 0000000..b87d0f1 --- /dev/null +++ b/cmd/serve-package/main.go @@ -0,0 +1,46 @@ +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) + } +}