Skip to content
Permalink
main
Go to file
 
 
Cannot retrieve contributors at this time
68 lines (60 sloc) 1.28 KB
package main
import (
"flag"
"fmt"
"os"
"github.com/schollz/logger"
"github.com/schollz/norns.online/src/norns"
"github.com/schollz/norns.online/src/server"
"github.com/shirou/gopsutil/v3/process"
)
var config = flag.String("config", "", "config file to use")
var debugMode = flag.Bool("debug", false, "debug mode")
var relayMode = flag.Bool("relay", false, "run relay")
func main() {
// logger.SetOutput(&lumberjack.Logger{
// Filename: "/dev/shm/norns.online.log",
// MaxSize: 1, // megabytes
// MaxBackups: 3,
// MaxAge: 28, //days
// Compress: false, // disabled by default
// })
// first make sure its not already running an instance
processes, err := process.Processes()
if err != nil {
panic(err)
}
numRunning := 0
pid := int32(0)
for _, process := range processes {
name, _ := process.Name()
if name == "norns.online" {
numRunning++
if pid == 0 {
pid = process.Pid
}
}
}
if numRunning > 1 {
fmt.Println("already running")
os.Exit(1)
}
fmt.Printf("%d\n", pid)
// setup logger
flag.Parse()
logger.SetLevel("info")
if *debugMode {
logger.SetLevel("debug")
}
if *relayMode {
err = server.Run()
} else {
n, err := norns.New(*config, pid)
if err == nil {
err = n.Run()
}
}
if err != nil {
logger.Error(err)
}
}