From ec7051e1da665206f594c7616ad381bfeaea333a Mon Sep 17 00:00:00 2001 From: Sebastien Douheret Date: Thu, 11 May 2017 19:42:00 +0200 Subject: Initial main commit. Signed-off-by: Sebastien Douheret --- main.go | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 main.go (limited to 'main.go') diff --git a/main.go b/main.go new file mode 100644 index 0000000..6561785 --- /dev/null +++ b/main.go @@ -0,0 +1,87 @@ +// TODO add Doc +// +package main + +import ( + "log" + "os" + + "github.com/Sirupsen/logrus" + "github.com/codegangsta/cli" + "github.com/iotbzh/xds-server/lib/xdsconfig" + "github.com/iotbzh/xds-server/lib/xdsserver" +) + +const ( + appName = "xds-server" + appDescription = "X(cross) Development System Server is a web server that allows to remotely cross build applications." + appVersion = "0.0.1" + appCopyright = "Apache-2.0" + appUsage = "X(cross) Development System Server" +) + +var appAuthors = []cli.Author{ + cli.Author{Name: "Sebastien Douheret", Email: "sebastien@iot.bzh"}, +} + +// AppVersionGitTag is the git tag id added to version string +// Should be set by compilation -ldflags "-X main.AppVersionGitTag=xxx" +var AppVersionGitTag = "unknown-dev" + +// Web server main routine +func webServer(ctx *cli.Context) error { + + // Init config + cfg, err := xdsconfig.Init(ctx) + if err != nil { + return cli.NewExitError(err, 2) + } + + // Create and start Web Server + svr := xdsserver.NewServer(cfg) + if err = svr.Serve(); err != nil { + log.Println(err) + return cli.NewExitError(err, 3) + } + + return cli.NewExitError("Program exited ", 4) +} + +// main +func main() { + + // Create a new instance of the logger + log := logrus.New() + + // Create a new App instance + app := cli.NewApp() + app.Name = appName + app.Description = appDescription + app.Usage = appUsage + app.Version = appVersion + " (" + AppVersionGitTag + ")" + app.Authors = appAuthors + app.Copyright = appCopyright + app.Metadata = make(map[string]interface{}) + app.Metadata["version"] = appVersion + app.Metadata["git-tag"] = AppVersionGitTag + app.Metadata["logger"] = log + + app.Flags = []cli.Flag{ + cli.StringFlag{ + Name: "config, c", + Usage: "JSON config file to use\n\t", + EnvVar: "APP_CONFIG", + }, + cli.StringFlag{ + Name: "log, l", + Value: "error", + Usage: "logging level (supported levels: panic, fatal, error, warn, info, debug)\n\t", + EnvVar: "LOG_LEVEL", + }, + } + + // only one action: Web Server + app.Action = webServer + + app.Run(os.Args) +} -- cgit 1.2.3-korg