now supports some basic configuration
This commit is contained in:
parent
f36da8dde9
commit
e1fc2f11d7
10
Makefile
10
Makefile
|
@ -1,11 +1,19 @@
|
|||
VERSION := $(shell git rev-parse --short HEAD)
|
||||
BUILDTIME := $(shell date -u '+%Y-%m-%dT%H:%M:%SZ')
|
||||
BUILDUSER := $(shell whoami)
|
||||
BUILDHOST := $(shell hostname -s)
|
||||
BUILDARCH := $(shell uname -m)
|
||||
|
||||
GOLDFLAGS += -X main.Version=$(VERSION)
|
||||
GOLDFLAGS += -X main.Buildtime=$(BUILDTIME)
|
||||
GOLDFLAGS += -X main.Builduser=$(BUILDUSER)@$(BUILDHOST)
|
||||
GOLDFLAGS += -X main.Buildarch=$(BUILDARCH)
|
||||
GOFLAGS = -ldflags "$(GOLDFLAGS)"
|
||||
|
||||
default: run
|
||||
default: rundebug
|
||||
|
||||
rundebug: build
|
||||
DEBUG=1 ./ircd
|
||||
|
||||
run: build
|
||||
./ircd
|
||||
|
|
29
main.go
29
main.go
|
@ -1,5 +1,6 @@
|
|||
package main
|
||||
|
||||
import "os"
|
||||
import "fmt"
|
||||
import "github.com/sirupsen/logrus"
|
||||
import "github.com/sneak/sircd/sircd"
|
||||
|
@ -7,22 +8,22 @@ import "github.com/spf13/viper"
|
|||
|
||||
var Version string
|
||||
var Buildtime string
|
||||
var Builduser string
|
||||
var Buildarch string
|
||||
|
||||
func main() {
|
||||
|
||||
// set up logging
|
||||
log := logrus.New()
|
||||
log.SetLevel(logrus.DebugLevel)
|
||||
log.SetReportCaller(true)
|
||||
log.Println("sircd starting up")
|
||||
|
||||
c := viper.New()
|
||||
// default config variables
|
||||
c.SetDefault("myhostname", "irc.example.com")
|
||||
c.SetDefault("network", "ExampleNet")
|
||||
c.SetDefault("admin", "webmaster@example.com")
|
||||
c.SetDefault("loglevel", "info")
|
||||
c.SetDefault("version", Version)
|
||||
c.SetDefault("buildtime", Buildtime)
|
||||
c.SetDefault("builduser", Builduser)
|
||||
c.SetDefault("buildarch", Buildarch)
|
||||
|
||||
// read config file
|
||||
c.SetConfigName("sircd") // name of config file (without extension)
|
||||
|
@ -34,6 +35,24 @@ func main() {
|
|||
panic(fmt.Errorf("Fatal error config file: %s \n", err))
|
||||
}
|
||||
|
||||
// this is the only config settable by env var by design
|
||||
// do everything else in the config file
|
||||
if os.Getenv("DEBUG") != "" {
|
||||
c.Set("loglevel", "debug")
|
||||
}
|
||||
|
||||
// set up logging
|
||||
log := logrus.New()
|
||||
log.SetReportCaller(false)
|
||||
switch c.GetString("loglevel") {
|
||||
case "error":
|
||||
log.SetLevel(logrus.ErrorLevel)
|
||||
case "info":
|
||||
log.SetLevel(logrus.InfoLevel)
|
||||
default:
|
||||
log.SetLevel(logrus.DebugLevel)
|
||||
log.SetReportCaller(true)
|
||||
}
|
||||
// instantiate server
|
||||
s := sircd.New(c)
|
||||
// give it our logger
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
myhostname: irc.example.com
|
||||
network: ExampleNet
|
||||
admin: webmaster@example.com
|
||||
loglevel: info
|
||||
|
|
|
@ -43,7 +43,7 @@ func (s *ircd) SetServerName(name string) {
|
|||
}
|
||||
|
||||
func (s *ircd) Start() {
|
||||
s.log.Infof("sircd version=%s buildtime=%s starting.", s.c.GetString("version"), s.c.GetString("buildtime"))
|
||||
s.log.Infof("sircd version %s (%s) built %s by %s starting.", s.c.GetString("version"), s.c.GetString("buildarch"), s.c.GetString("buildtime"), s.c.GetString("builduser"))
|
||||
s.newClients = make(chan *ircClient, 128)
|
||||
s.deadClients = make(chan *ircClient, 128)
|
||||
s.messageQueue = make(chan *ircMessage, 128)
|
||||
|
|
Loading…
Reference in New Issue