diff --git a/cmd/proxy/main.go b/cmd/proxy/main.go index b510278..2487500 100644 --- a/cmd/proxy/main.go +++ b/cmd/proxy/main.go @@ -24,6 +24,7 @@ var ( router = initRouter() sioServer *socketio.Server + configPath string port uint16 tls bool network string @@ -121,7 +122,7 @@ func initLauncherWs() { func initServiceManager() { logger.Debug("Creating service manager") - manager, err := service.NewManager(network) + manager, err := service.NewManager(network, configPath) if err != nil { logger.Fatalf("Failed to create service manager: %s", err) } @@ -178,6 +179,7 @@ func main() { Use: "proxy", Short: "The API gateway of opendexd-docker", } + cmd.PersistentFlags().StringVarP(&configPath, "config", "c", "/root/network/data/config.json", "Configuration file") cmd.PersistentFlags().Uint16VarP(&port, "port", "p", 8080, "The port to listen") cmd.PersistentFlags().BoolVar(&tls, "tls", false, "Enable TLS support") err = cmd.Execute() diff --git a/service/manager.go b/service/manager.go index e91fdd2..51a3e06 100644 --- a/service/manager.go +++ b/service/manager.go @@ -39,11 +39,12 @@ var ( ) type Manager struct { - network string - services []core.Service - factory core.DockerClientFactory - logger *logrus.Entry - listeners map[string]core.DockerEventListener + configPath string + network string + services []core.Service + factory core.DockerClientFactory + logger *logrus.Entry + listeners map[string]core.DockerEventListener *LauncherAgent } @@ -52,9 +53,9 @@ func containerName(network string, service string) string { return fmt.Sprintf("%s_%s_1", network, service) } -func initServices(network string, dockerClient *docker.Client, listeners map[string]core.DockerEventListener) []core.Service { +func initServices(configPath string, network string, dockerClient *docker.Client, listeners map[string]core.DockerEventListener) []core.Service { - f, err := ioutil.ReadFile("/root/network/data/config.json") + f, err := ioutil.ReadFile(configPath) if err != nil { panic(err) } @@ -128,7 +129,7 @@ func initServices(network string, dockerClient *docker.Client, listeners map[str return result } -func NewManager(network string) (*Manager, error) { +func NewManager(network string, configPath string) (*Manager, error) { factory, err := core.NewClientFactory() if err != nil { return nil, err @@ -140,7 +141,8 @@ func NewManager(network string) (*Manager, error) { manager := Manager{ network: network, - services: initServices(network, factory.GetSharedInstance(), listeners), + configPath: configPath, + services: initServices(network, configPath, factory.GetSharedInstance(), listeners), factory: factory, logger: logger, listeners: listeners,