From 56189c99ea71c68f90b86fd81cf9810041ffcd92 Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Sun, 4 Oct 2020 19:44:26 +0200 Subject: [PATCH] Add version to ui --- cmd/command.go | 2 +- cmd/serve.go | 60 ++++++++++++++++++++++--------------------- router/router.go | 4 ++- ui/src/RoomManage.tsx | 5 ++++ ui/src/message.ts | 1 + ui/src/useConfig.ts | 1 + 6 files changed, 42 insertions(+), 31 deletions(-) diff --git a/cmd/command.go b/cmd/command.go index 73fc37f..15b9852 100644 --- a/cmd/command.go +++ b/cmd/command.go @@ -13,7 +13,7 @@ func Run(version, commitHash string) { Name: "screego", Version: fmt.Sprintf("%s; screego/server@%s", version, commitHash), Commands: []cli.Command{ - serveCmd, + serveCmd(version), hashCmd, }, } diff --git a/cmd/serve.go b/cmd/serve.go index 2078729..b63cdd0 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -17,39 +17,41 @@ import ( "github.com/urfave/cli" ) -var serveCmd = cli.Command{ - Name: "serve", - Action: func(ctx *cli.Context) { +func serveCmd(version string) cli.Command { + return cli.Command{ + Name: "serve", + Action: func(ctx *cli.Context) { - mrand.Seed(time.Now().Unix()) - conf, errs := config.Get() - logger.Init(conf.LogLevel.AsZeroLogLevel()) + mrand.Seed(time.Now().Unix()) + conf, errs := config.Get() + logger.Init(conf.LogLevel.AsZeroLogLevel()) - exit := false - for _, err := range errs { - log.WithLevel(err.Level).Msg(err.Msg) - exit = exit || err.Level == zerolog.FatalLevel || err.Level == zerolog.PanicLevel - } - if exit { - os.Exit(1) - } - users, err := auth.ReadPasswordsFile(conf.UsersFile, conf.Secret) - if err != nil { - log.Fatal().Str("file", conf.UsersFile).Err(err).Msg("While loading users file") - } + exit := false + for _, err := range errs { + log.WithLevel(err.Level).Msg(err.Msg) + exit = exit || err.Level == zerolog.FatalLevel || err.Level == zerolog.PanicLevel + } + if exit { + os.Exit(1) + } + users, err := auth.ReadPasswordsFile(conf.UsersFile, conf.Secret) + if err != nil { + log.Fatal().Str("file", conf.UsersFile).Err(err).Msg("While loading users file") + } - auth, err := turn.Start(conf) - if err != nil { - log.Fatal().Err(err).Msg("could not start turn server") - } + auth, err := turn.Start(conf) + if err != nil { + log.Fatal().Err(err).Msg("could not start turn server") + } - rooms := ws.NewRooms(auth, users, conf) + rooms := ws.NewRooms(auth, users, conf) - go rooms.Start() + go rooms.Start() - r := router.Router(conf, rooms, users) - if err := server.Start(r, conf.ServerAddress, conf.TLSCertFile, conf.TLSKeyFile); err != nil { - log.Fatal().Err(err).Msg("http server") - } - }, + r := router.Router(conf, rooms, users, version) + if err := server.Start(r, conf.ServerAddress, conf.TLSCertFile, conf.TLSKeyFile); err != nil { + log.Fatal().Err(err).Msg("http server") + } + }, + } } diff --git a/router/router.go b/router/router.go index ee9a51d..7f39c2c 100644 --- a/router/router.go +++ b/router/router.go @@ -16,9 +16,10 @@ type UIConfig struct { AuthMode string `json:"authMode"` User string `json:"user"` LoggedIn bool `json:"loggedIn"` + Version string `json:"version"` } -func Router(conf config.Config, rooms *ws.Rooms, users *auth.Users) *mux.Router { +func Router(conf config.Config, rooms *ws.Rooms, users *auth.Users, version string) *mux.Router { router := mux.NewRouter() router.Use(handlers.CORS(handlers.AllowedMethods([]string{"GET", "POST"}), handlers.AllowedOriginValidator(conf.CheckOrigin))) router.HandleFunc("/stream", rooms.Upgrade) @@ -30,6 +31,7 @@ func Router(conf config.Config, rooms *ws.Rooms, users *auth.Users) *mux.Router AuthMode: conf.AuthMode, LoggedIn: loggedIn, User: user, + Version: version, }) }) diff --git a/ui/src/RoomManage.tsx b/ui/src/RoomManage.tsx index bfead28..c8b5eed 100644 --- a/ui/src/RoomManage.tsx +++ b/ui/src/RoomManage.tsx @@ -12,6 +12,7 @@ import { Select, TextField, Typography, + Link, } from '@material-ui/core'; import {FCreateRoom, UseRoom} from './useRoom'; import {RoomMode, UIConfig} from './message'; @@ -144,6 +145,10 @@ export const RoomManage = ({room, config}: {room: FCreateRoom; config: UseConfig )} +
+ Screego {config.version} |{' '} + GitHub +
); }; diff --git a/ui/src/message.ts b/ui/src/message.ts index 33d24c3..beb27e1 100644 --- a/ui/src/message.ts +++ b/ui/src/message.ts @@ -9,6 +9,7 @@ export interface UIConfig { authMode: 'turn' | 'none' | 'all'; user: string; loggedIn: boolean; + version: string; } export interface RoomConfiguration { diff --git a/ui/src/useConfig.ts b/ui/src/useConfig.ts index 5a84532..2fc09a3 100644 --- a/ui/src/useConfig.ts +++ b/ui/src/useConfig.ts @@ -16,6 +16,7 @@ export const useConfig = (): UseConfig => { user: 'guest', loggedIn: false, loading: true, + version: 'unknown', }); const refetch = React.useCallback(() => {