Add version to ui

This commit is contained in:
Jannis Mattheis
2020-10-04 19:44:26 +02:00
parent ee0a831174
commit 56189c99ea
6 changed files with 42 additions and 31 deletions

View File

@@ -13,7 +13,7 @@ func Run(version, commitHash string) {
Name: "screego", Name: "screego",
Version: fmt.Sprintf("%s; screego/server@%s", version, commitHash), Version: fmt.Sprintf("%s; screego/server@%s", version, commitHash),
Commands: []cli.Command{ Commands: []cli.Command{
serveCmd, serveCmd(version),
hashCmd, hashCmd,
}, },
} }

View File

@@ -17,39 +17,41 @@ import (
"github.com/urfave/cli" "github.com/urfave/cli"
) )
var serveCmd = cli.Command{ func serveCmd(version string) cli.Command {
Name: "serve", return cli.Command{
Action: func(ctx *cli.Context) { Name: "serve",
Action: func(ctx *cli.Context) {
mrand.Seed(time.Now().Unix()) mrand.Seed(time.Now().Unix())
conf, errs := config.Get() conf, errs := config.Get()
logger.Init(conf.LogLevel.AsZeroLogLevel()) logger.Init(conf.LogLevel.AsZeroLogLevel())
exit := false exit := false
for _, err := range errs { for _, err := range errs {
log.WithLevel(err.Level).Msg(err.Msg) log.WithLevel(err.Level).Msg(err.Msg)
exit = exit || err.Level == zerolog.FatalLevel || err.Level == zerolog.PanicLevel exit = exit || err.Level == zerolog.FatalLevel || err.Level == zerolog.PanicLevel
} }
if exit { if exit {
os.Exit(1) os.Exit(1)
} }
users, err := auth.ReadPasswordsFile(conf.UsersFile, conf.Secret) users, err := auth.ReadPasswordsFile(conf.UsersFile, conf.Secret)
if err != nil { if err != nil {
log.Fatal().Str("file", conf.UsersFile).Err(err).Msg("While loading users file") log.Fatal().Str("file", conf.UsersFile).Err(err).Msg("While loading users file")
} }
auth, err := turn.Start(conf) auth, err := turn.Start(conf)
if err != nil { if err != nil {
log.Fatal().Err(err).Msg("could not start turn server") 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) r := router.Router(conf, rooms, users, version)
if err := server.Start(r, conf.ServerAddress, conf.TLSCertFile, conf.TLSKeyFile); err != nil { if err := server.Start(r, conf.ServerAddress, conf.TLSCertFile, conf.TLSKeyFile); err != nil {
log.Fatal().Err(err).Msg("http server") log.Fatal().Err(err).Msg("http server")
} }
}, },
}
} }

View File

@@ -16,9 +16,10 @@ type UIConfig struct {
AuthMode string `json:"authMode"` AuthMode string `json:"authMode"`
User string `json:"user"` User string `json:"user"`
LoggedIn bool `json:"loggedIn"` 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 := mux.NewRouter()
router.Use(handlers.CORS(handlers.AllowedMethods([]string{"GET", "POST"}), handlers.AllowedOriginValidator(conf.CheckOrigin))) router.Use(handlers.CORS(handlers.AllowedMethods([]string{"GET", "POST"}), handlers.AllowedOriginValidator(conf.CheckOrigin)))
router.HandleFunc("/stream", rooms.Upgrade) 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, AuthMode: conf.AuthMode,
LoggedIn: loggedIn, LoggedIn: loggedIn,
User: user, User: user,
Version: version,
}) })
}) })

View File

@@ -12,6 +12,7 @@ import {
Select, Select,
TextField, TextField,
Typography, Typography,
Link,
} from '@material-ui/core'; } from '@material-ui/core';
import {FCreateRoom, UseRoom} from './useRoom'; import {FCreateRoom, UseRoom} from './useRoom';
import {RoomMode, UIConfig} from './message'; import {RoomMode, UIConfig} from './message';
@@ -144,6 +145,10 @@ export const RoomManage = ({room, config}: {room: FCreateRoom; config: UseConfig
)} )}
</Paper> </Paper>
</Grid> </Grid>
<div style={{position: 'absolute', margin: '0 auto', bottom: 0}}>
Screego {config.version} |{' '}
<Link href="https://github.com/screego/server/">GitHub</Link>
</div>
</Grid> </Grid>
); );
}; };

View File

@@ -9,6 +9,7 @@ export interface UIConfig {
authMode: 'turn' | 'none' | 'all'; authMode: 'turn' | 'none' | 'all';
user: string; user: string;
loggedIn: boolean; loggedIn: boolean;
version: string;
} }
export interface RoomConfiguration { export interface RoomConfiguration {

View File

@@ -16,6 +16,7 @@ export const useConfig = (): UseConfig => {
user: 'guest', user: 'guest',
loggedIn: false, loggedIn: false,
loading: true, loading: true,
version: 'unknown',
}); });
const refetch = React.useCallback(() => { const refetch = React.useCallback(() => {