X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=main.go;h=0637de9911151f4f6ca37c77cf364973e0007e7b;hb=be47274f79eb0843da4d805cfc417fbf7921379c;hp=65617856b15992d0b6e8334a71b4ff687697a848;hpb=ec7051e1da665206f594c7616ad381bfeaea333a;p=src%2Fxds%2Fxds-server.git diff --git a/main.go b/main.go index 6561785..0637de9 100644 --- a/main.go +++ b/main.go @@ -1,22 +1,39 @@ -// TODO add Doc -// +/* + * Copyright (C) 2017-2018 "IoT.bzh" + * Author Sebastien Douheret + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + * xds-server: X(cross) Development System server. + */ + package main import ( - "log" + "fmt" "os" + "gerrit.automotivelinux.org/gerrit/src/xds/xds-server/lib/xdsconfig" + "gerrit.automotivelinux.org/gerrit/src/xds/xds-server/lib/xdsserver" "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" + appCopyright = "Copyright (C) 2017-2018 IoT.bzh - Apache-2.0" appUsage = "X(cross) Development System Server" ) @@ -24,27 +41,30 @@ 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" +// AppVersion is the version of this application +var AppVersion = "?.?.?" + +// AppSubVersion is the git tag id added to version string +// Should be set by compilation -ldflags "-X main.AppSubVersion=xxx" +var AppSubVersion = "unknown-dev" -// Web server main routine -func webServer(ctx *cli.Context) error { +// XDS Server application main routine +func xdsApp(cliCtx *cli.Context) error { + var err error - // Init config - cfg, err := xdsconfig.Init(ctx) + // Create XDS server context + ctxSvr := xdsserver.NewXdsServer(cliCtx) + + // Load config + ctxSvr.Config, err = xdsconfig.Init(cliCtx, ctxSvr.Log) if err != nil { - return cli.NewExitError(err, 2) + 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) - } + // Run XDS Server (main loop) + errCode, err := ctxSvr.Run() - return cli.NewExitError("Program exited ", 4) + return cli.NewExitError(err, errCode) } // main @@ -58,12 +78,12 @@ func main() { app.Name = appName app.Description = appDescription app.Usage = appUsage - app.Version = appVersion + " (" + AppVersionGitTag + ")" + app.Version = AppVersion + " (" + AppSubVersion + ")" app.Authors = appAuthors app.Copyright = appCopyright app.Metadata = make(map[string]interface{}) - app.Metadata["version"] = appVersion - app.Metadata["git-tag"] = AppVersionGitTag + app.Metadata["version"] = AppVersion + app.Metadata["git-tag"] = AppSubVersion app.Metadata["logger"] = log app.Flags = []cli.Flag{ @@ -78,10 +98,21 @@ func main() { Usage: "logging level (supported levels: panic, fatal, error, warn, info, debug)\n\t", EnvVar: "LOG_LEVEL", }, + cli.StringFlag{ + Name: "logfile", + Value: "stdout", + Usage: "filename where logs will be redirected (default stdout)\n\t", + EnvVar: "LOG_FILENAME", + }, + cli.BoolFlag{ + Name: "no-folderconfig, nfc", + Usage: fmt.Sprintf("Do not read folder config file (%s)\n\t", xdsconfig.FoldersConfigFilename), + EnvVar: "NO_FOLDERCONFIG", + }, } // only one action: Web Server - app.Action = webServer + app.Action = xdsApp app.Run(os.Args) }