2024-01-27 11:20:40 +01:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
2024-01-28 15:31:58 +01:00
|
|
|
|
2024-01-29 16:45:51 +01:00
|
|
|
"golang.org/x/sync/errgroup"
|
2024-01-27 11:20:40 +01:00
|
|
|
|
|
|
|
"git.jmbit.de/jmb/podterminal/pods"
|
|
|
|
"git.jmbit.de/jmb/podterminal/utils"
|
|
|
|
"git.jmbit.de/jmb/podterminal/web"
|
|
|
|
)
|
|
|
|
|
2024-01-29 16:45:51 +01:00
|
|
|
var (
|
|
|
|
g errgroup.Group
|
|
|
|
)
|
|
|
|
|
2024-01-27 11:20:40 +01:00
|
|
|
func main() {
|
2024-01-28 15:31:58 +01:00
|
|
|
readConfigFile()
|
2024-01-27 11:20:40 +01:00
|
|
|
pods.ConnectSocket()
|
2024-01-29 16:45:51 +01:00
|
|
|
|
|
|
|
// Start Webserver
|
|
|
|
g.Go(web.Run)
|
|
|
|
|
2024-01-27 11:20:40 +01:00
|
|
|
utils.DropPrivileges("podterminal")
|
2024-01-28 15:31:58 +01:00
|
|
|
log.Println("Dropped Privileges")
|
2024-01-29 16:45:51 +01:00
|
|
|
g.Go(pods.GarbageCollector)
|
|
|
|
g.Go(pods.PullImage)
|
2024-02-03 11:11:10 +01:00
|
|
|
g.Go(web.IdleSessionCleanup)
|
2024-01-29 16:45:51 +01:00
|
|
|
|
|
|
|
// prevent main thread from dying
|
|
|
|
if err := g.Wait(); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
2024-01-27 11:20:40 +01:00
|
|
|
}
|