packageize root
This commit is contained in:
36
cmd/feta/identity.go
Normal file
36
cmd/feta/identity.go
Normal file
@@ -0,0 +1,36 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
var Version string
|
||||
var Buildtime string
|
||||
var Builduser string
|
||||
var Buildarch string
|
||||
|
||||
type AppIdentity struct {
|
||||
Version string
|
||||
Buildtime string
|
||||
Builduser string
|
||||
Buildarch string
|
||||
}
|
||||
|
||||
func GetAppIdentity() *AppIdentity {
|
||||
i := new(AppIdentity)
|
||||
i.Version = Version
|
||||
i.Buildtime = Buildtime
|
||||
i.Builduser = Builduser
|
||||
i.Buildarch = Buildarch
|
||||
return i
|
||||
}
|
||||
|
||||
func identify() {
|
||||
i := GetAppIdentity()
|
||||
log.Info().
|
||||
Str("version", i.Version).
|
||||
Str("buildarch", i.Buildarch).
|
||||
Str("buildtime", i.Buildtime).
|
||||
Str("builduser", i.Builduser).
|
||||
Msg("starting")
|
||||
}
|
||||
55
cmd/feta/main.go
Normal file
55
cmd/feta/main.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package main
|
||||
|
||||
import "os"
|
||||
import "sync"
|
||||
import "time"
|
||||
|
||||
import "github.com/rs/zerolog"
|
||||
import "github.com/rs/zerolog/log"
|
||||
import "golang.org/x/crypto/ssh/terminal"
|
||||
|
||||
func main() {
|
||||
os.Exit(app())
|
||||
}
|
||||
|
||||
func app() int {
|
||||
log.Logger = log.With().Caller().Logger()
|
||||
if terminal.IsTerminal(int(os.Stdout.Fd())) {
|
||||
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})
|
||||
}
|
||||
|
||||
identify()
|
||||
|
||||
// always log in UTC
|
||||
zerolog.TimestampFunc = func() time.Time {
|
||||
return time.Now().UTC()
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.InfoLevel)
|
||||
if os.Getenv("DEBUG") != "" {
|
||||
zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
}
|
||||
|
||||
archiver := NewTootArchiver()
|
||||
|
||||
api := new(TootArchiverAPIServer)
|
||||
api.archiver = archiver
|
||||
|
||||
var wg sync.WaitGroup
|
||||
|
||||
// start api webserver goroutine
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
api.Serve()
|
||||
wg.Done()
|
||||
}()
|
||||
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
archiver.RunForever()
|
||||
wg.Done()
|
||||
}()
|
||||
|
||||
wg.Wait()
|
||||
return 0
|
||||
}
|
||||
Reference in New Issue
Block a user