From dc8619e1319827c8e0933eb4fb41f17ffebb56a3 Mon Sep 17 00:00:00 2001 From: franklin Date: Fri, 3 Jul 2015 15:38:15 +0200 Subject: [PATCH] fixed initialization and moved content_server --- content_server.go | 70 +++++++++++++++++++++++++++++++++++++++++++++++ server/socket.go | 4 ++- 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 content_server.go diff --git a/content_server.go b/content_server.go new file mode 100644 index 0000000..74b65d2 --- /dev/null +++ b/content_server.go @@ -0,0 +1,70 @@ +package main + +import ( + "flag" + "fmt" + "github.com/foomo/contentserver/server" + "github.com/foomo/contentserver/server/log" + "os" + "strings" +) + +const ( + PROTOCOL_TCP = "tcp" +) + +type ExitCode int + +const ( + EXIT_CODE_OK = 0 + EXIT_CODE_INSUFFICIENT_ARGS = 1 +) + +var contentServer string + +var uniqushPushVersion = "content-server 1.2.0" + +var showVersionFlag = flag.Bool("version", false, "Version info") +var protocol = flag.String("protocol", PROTOCOL_TCP, "what protocol to server for") +var address = flag.String("address", "127.0.0.1:8081", "address to bind host:port") +var varDir = flag.String("vardir", "127.0.0.1:8081", "where to put my data") +var logLevelOptions = []string{ + log.LOG_LEVEL_NAME_ERROR, + log.LOG_LEVEL_NAME_RECORD, + log.LOG_LEVEL_NAME_WARNING, + log.LOG_LEVEL_NAME_NOTICE, + log.LOG_LEVEL_NAME_DEBUG} + +var logLevel = flag.String( + "logLevel", + log.LOG_LEVEL_NAME_RECORD, + fmt.Sprintf( + "one of %s", + strings.Join(logLevelOptions, ", "))) + +func exitUsage(code int) { + fmt.Printf("Usage: %s http(s)://your-content-server/path/to/content.json\n", os.Args[0]) + flag.PrintDefaults() + os.Exit(code) +} + +func main() { + flag.Parse() + if *showVersionFlag { + fmt.Printf("%v\n", uniqushPushVersion) + return + } + if len(flag.Args()) == 1 { + fmt.Println(*protocol, *address, flag.Arg(0)) + log.SetLogLevel(log.GetLogLevelByName(*logLevel)) + switch *protocol { + case PROTOCOL_TCP: + server.RunSocketServer(flag.Arg(0), *address, *varDir) + break + default: + exitUsage(EXIT_CODE_INSUFFICIENT_ARGS) + } + } else { + exitUsage(EXIT_CODE_INSUFFICIENT_ARGS) + } +} diff --git a/server/socket.go b/server/socket.go index df2315f..4ca5170 100644 --- a/server/socket.go +++ b/server/socket.go @@ -147,7 +147,6 @@ func handleConnection(conn net.Conn) { func RunSocketServer(server string, address string, varDir string) { log.Record("building repo with content from " + server) contentRepo = repo.NewRepo(server, varDir) - contentRepo.Update() ln, err := net.Listen("tcp", address) if err != nil { // failed to create socket @@ -155,6 +154,9 @@ func RunSocketServer(server string, address string, varDir string) { } else { // there we go log.Record("RunSocketServer: started to listen on " + address) + if len(contentRepo.Directory) == 0 { + contentRepo.Update() + } for { conn, err := ln.Accept() // this blocks until connection or error if err != nil {