2016-02-01 22:34:19 +08:00
|
|
|
/*
|
|
|
|
Configuration package is used to read the configuration file
|
|
|
|
config.json which stores the server port for current implementation
|
|
|
|
{
|
|
|
|
"ServerPort": ":8081"
|
|
|
|
}
|
|
|
|
*/
|
2016-01-23 18:33:10 +08:00
|
|
|
package config
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"io/ioutil"
|
|
|
|
"log"
|
|
|
|
)
|
|
|
|
|
2016-05-13 13:02:07 +08:00
|
|
|
//Configuration Stores the main configuration for the application
|
2016-01-23 18:33:10 +08:00
|
|
|
type Configuration struct {
|
2016-01-23 18:34:33 +08:00
|
|
|
ServerPort string
|
2016-01-23 18:33:10 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
var err error
|
|
|
|
var config Configuration
|
|
|
|
|
|
|
|
//ReadConfig will read the configuration json file to read the parameters
|
|
|
|
//which will be passed in the config file
|
2016-05-13 13:02:07 +08:00
|
|
|
func ReadConfig(fileName string) (Configuration, error) {
|
2016-01-23 18:33:10 +08:00
|
|
|
configFile, err := ioutil.ReadFile(fileName)
|
|
|
|
if err != nil {
|
2016-05-13 13:02:07 +08:00
|
|
|
log.Print("Unable to read config file, switching to flag mode")
|
|
|
|
return Configuration{}, err
|
2016-01-23 18:33:10 +08:00
|
|
|
}
|
|
|
|
//log.Print(configFile)
|
|
|
|
err = json.Unmarshal(configFile, &config)
|
|
|
|
if err != nil {
|
2016-05-13 13:02:07 +08:00
|
|
|
log.Print("Invalid JSON, expecting port from command line flag")
|
|
|
|
return Configuration{}, err
|
2016-01-23 18:33:10 +08:00
|
|
|
}
|
2016-05-13 13:02:07 +08:00
|
|
|
return config, nil
|
2016-01-23 18:33:10 +08:00
|
|
|
}
|