ircd/ergonomadic.go

64 lines
1.7 KiB
Go
Raw Normal View History

2014-02-08 21:18:11 +00:00
package main
import (
2014-02-24 06:21:39 +00:00
"fmt"
2014-02-09 15:53:42 +00:00
"log"
"syscall"
2014-03-13 01:57:00 +00:00
"github.com/docopt/docopt-go"
"github.com/edmund-huber/ergonomadic/irc"
"golang.org/x/crypto/ssh/terminal"
)
2014-03-13 01:57:00 +00:00
func main() {
version := irc.SEM_VER
usage := `ergonomadic.
Usage:
ergonomadic initdb [--conf <filename>]
ergonomadic upgradedb [--conf <filename>]
ergonomadic genpasswd [--conf <filename>]
ergonomadic run [--conf <filename>]
ergonomadic -h | --help
ergonomadic --version
Options:
--conf <filename> Configuration file to use [default: ircd.yaml].
-h --help Show this screen.
--version Show version.`
arguments, _ := docopt.Parse(usage, nil, true, version, false)
// load config now because it's the same process for all
configfile := arguments["--conf"].(string)
config, err := irc.LoadConfig(configfile)
2014-03-13 01:57:00 +00:00
if err != nil {
log.Fatal("Config file did not load successfully:", err.Error())
2014-03-13 01:57:00 +00:00
}
if arguments["genpasswd"].(bool) {
fmt.Print("Enter Password: ")
bytePassword, err := terminal.ReadPassword(int(syscall.Stdin))
if err != nil {
log.Fatal("Error reading password:", err.Error())
}
password := string(bytePassword)
encoded, err := irc.GenerateEncodedPassword(password)
if err != nil {
2014-03-13 01:57:00 +00:00
log.Fatalln("encoding error:", err)
}
fmt.Print("\n")
fmt.Println(encoded)
} else if arguments["initdb"].(bool) {
irc.InitDB(config.Server.Database)
2014-03-08 02:14:02 +00:00
log.Println("database initialized: ", config.Server.Database)
} else if arguments["upgradedb"].(bool) {
2014-03-08 02:14:02 +00:00
irc.UpgradeDB(config.Server.Database)
log.Println("database upgraded: ", config.Server.Database)
} else if arguments["run"].(bool) {
2014-03-13 01:57:00 +00:00
irc.Log.SetLevel(config.Server.Log)
server := irc.NewServer(config)
log.Println(irc.SEM_VER, "running")
defer log.Println(irc.SEM_VER, "exiting")
server.Run()
}
2014-02-08 21:18:11 +00:00
}