2016-01-28 10:16:26 -05:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2024-08-25 23:22:21 -04:00
|
|
|
"flag"
|
2024-06-29 00:23:42 -04:00
|
|
|
"github.com/go-i2p/go-i2p/lib/config"
|
2021-04-19 20:43:37 -04:00
|
|
|
"github.com/go-i2p/go-i2p/lib/router"
|
2024-10-18 11:53:01 -04:00
|
|
|
"github.com/go-i2p/go-i2p/lib/util/logger"
|
2021-04-19 20:51:15 -04:00
|
|
|
"github.com/go-i2p/go-i2p/lib/util/signals"
|
2016-01-28 10:16:26 -05:00
|
|
|
)
|
|
|
|
|
2024-10-18 11:53:01 -04:00
|
|
|
var log = logger.GetLogger()
|
|
|
|
|
2016-01-28 10:16:26 -05:00
|
|
|
func main() {
|
2024-10-18 11:53:01 -04:00
|
|
|
|
2024-06-29 00:23:42 -04:00
|
|
|
netDbPath := flag.String("netDb", config.DefaultNetDbConfig.Path, "Path to the netDb")
|
|
|
|
flag.Parse()
|
|
|
|
config.RouterConfigProperties.NetDb.Path = *netDbPath
|
2017-08-27 10:48:34 -04:00
|
|
|
go signals.Handle()
|
2024-10-18 11:53:01 -04:00
|
|
|
log.Debug("parsing i2p router configuration")
|
|
|
|
log.Debug("using netDb in:", config.RouterConfigProperties.NetDb.Path)
|
|
|
|
log.Debug("starting up i2p router")
|
2016-01-29 07:22:31 -05:00
|
|
|
r, err := router.CreateRouter()
|
|
|
|
if err == nil {
|
2017-08-27 10:48:34 -04:00
|
|
|
signals.RegisterReloadHandler(func() {
|
|
|
|
// TODO: reload config
|
|
|
|
})
|
|
|
|
signals.RegisterInterruptHandler(func() {
|
|
|
|
// TODO: graceful shutdown
|
|
|
|
r.Stop()
|
|
|
|
})
|
2017-08-27 11:02:37 -04:00
|
|
|
r.Start()
|
2017-08-27 10:48:34 -04:00
|
|
|
r.Wait()
|
2017-08-27 11:02:37 -04:00
|
|
|
r.Close()
|
2016-01-29 07:22:31 -05:00
|
|
|
} else {
|
|
|
|
log.Errorf("failed to create i2p router: %s", err)
|
|
|
|
}
|
2016-01-28 10:16:26 -05:00
|
|
|
}
|