From 70120c1f1fe7fcea41d333e12af4e94683e912bb Mon Sep 17 00:00:00 2001 From: Robert Sesek Date: Fri, 12 Nov 2010 08:25:43 -0500 Subject: [PATCH] Create a Configuration struct and use that to RunFrontEnd(). --- build.py | 1 + src/config.go | 17 +++++++++++++++++ src/main.go | 12 +++++++++++- src/server.go | 5 +++-- 4 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 src/config.go diff --git a/build.py b/build.py index b2a3a0a..2915eb2 100755 --- a/build.py +++ b/build.py @@ -30,6 +30,7 @@ CLOSURE_CALCDEPS = os.path.join(CLOSURE_DEST, 'closure', 'bin', 'calcdeps.py') VERSION_FILE = os.path.join(FE_PATH, 'version.js.proto') SOURCES = [ + 'config.go', 'paths.go', 'server.go', 'main.go' diff --git a/src/config.go b/src/config.go new file mode 100644 index 0000000..f16823f --- /dev/null +++ b/src/config.go @@ -0,0 +1,17 @@ +// +// Armadillo File Manager +// Copyright (c) 2010, Robert Sesek +// +// This program is free software: you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free Software +// Foundation, either version 3 of the License, or any later version. +// + +package config + +type Configuration struct { + JailRoot string + Port int + ProxyURLs []string + Users map [string] string +} diff --git a/src/main.go b/src/main.go index 0a836e1..be5a1be 100644 --- a/src/main.go +++ b/src/main.go @@ -12,14 +12,24 @@ package main import ( "flag" "fmt" + "./config" "./paths" "./server" ) func main() { + var configPath *string = flag.String("config", "~/.armadillo", "Path to the configuration file") + var config = new(config.Configuration) + if len(*configPath) > 0 { + // Read configuration. + } flag.StringVar(&paths.JailRoot, "jail", "/", "Restrict file operations to this directory root") var port *int = flag.Int("port", 8080, "Port to run the server on") flag.Parse() + + config.JailRoot = paths.JailRoot + config.Port = *port + fmt.Printf("Starting Armadillo on port %d with root:\n %v\n", *port, paths.JailRoot) - server.RunFrontEnd(*port) + server.RunFrontEnd(config) } diff --git a/src/server.go b/src/server.go index 6a02f37..33da1ad 100644 --- a/src/server.go +++ b/src/server.go @@ -17,6 +17,7 @@ import ( "os" "path" "strings" + "./config" "./paths" ) @@ -99,12 +100,12 @@ func okResponse(connection *http.Conn, data interface{}) { } } -func RunFrontEnd(port int) { +func RunFrontEnd(config *config.Configuration) { mux := http.NewServeMux() mux.HandleFunc("/", indexHandler) mux.Handle("/fe/", http.FileServer(kFrontEndFiles, "/fe/")) mux.HandleFunc("/service", serviceHandler) - error := http.ListenAndServe(fmt.Sprintf(":%d", port), mux) + error := http.ListenAndServe(fmt.Sprintf(":%d", config.Port), mux) fmt.Printf("error %v", error) } -- 2.22.5