mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
large refactor, fixes #2
This commit is contained in:
@ -5,4 +5,4 @@ import "github.com/spf13/cobra"
|
||||
type Config interface {
|
||||
Init(cmd *cobra.Command) error
|
||||
Set()
|
||||
}
|
||||
}
|
||||
|
@ -5,16 +5,14 @@ import (
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
type Serve struct {
|
||||
Cert string
|
||||
Key string
|
||||
Bind string
|
||||
Password string
|
||||
type Server struct {
|
||||
Cert string
|
||||
Key string
|
||||
Bind string
|
||||
Static string
|
||||
}
|
||||
|
||||
func (Serve) Init(cmd *cobra.Command) error {
|
||||
|
||||
func (Server) Init(cmd *cobra.Command) error {
|
||||
cmd.PersistentFlags().String("bind", "127.0.0.1:8080", "Address/port/socket to serve neko")
|
||||
if err := viper.BindPFlag("bind", cmd.PersistentFlags().Lookup("bind")); err != nil {
|
||||
return err
|
||||
@ -30,12 +28,7 @@ func (Serve) Init(cmd *cobra.Command) error {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("password", "neko", "Password for connecting to stream")
|
||||
if err := viper.BindPFlag("password", cmd.PersistentFlags().Lookup("password")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("static", "./www", "Static files to serve")
|
||||
cmd.PersistentFlags().String("static", "./www", "Neko client files to serve")
|
||||
if err := viper.BindPFlag("static", cmd.PersistentFlags().Lookup("static")); err != nil {
|
||||
return err
|
||||
}
|
||||
@ -43,10 +36,9 @@ func (Serve) Init(cmd *cobra.Command) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Serve) Set() {
|
||||
func (s *Server) Set() {
|
||||
s.Cert = viper.GetString("cert")
|
||||
s.Key = viper.GetString("key")
|
||||
s.Bind = viper.GetString("bind")
|
||||
s.Password = viper.GetString("password")
|
||||
s.Static = viper.GetString("static")
|
||||
}
|
60
server/internal/config/webrtc.go
Normal file
60
server/internal/config/webrtc.go
Normal file
@ -0,0 +1,60 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
type WebRTC struct {
|
||||
Device string
|
||||
AudioCodec string
|
||||
AudioParams string
|
||||
Display string
|
||||
VideoCodec string
|
||||
VideoParams string
|
||||
}
|
||||
|
||||
func (WebRTC) Init(cmd *cobra.Command) error {
|
||||
cmd.PersistentFlags().String("device", "auto_null.monitor", "Audio device to capture")
|
||||
if err := viper.BindPFlag("device", cmd.PersistentFlags().Lookup("device")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("ac", "opus", "Audio codec to use for streaming")
|
||||
if err := viper.BindPFlag("acodec", cmd.PersistentFlags().Lookup("ac")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("ap", "", "Audio codec parameters to use for streaming")
|
||||
if err := viper.BindPFlag("aparams", cmd.PersistentFlags().Lookup("ap")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("display", ":0.0", "XDisplay to capture")
|
||||
if err := viper.BindPFlag("display", cmd.PersistentFlags().Lookup("display")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("vc", "vp8", "Video codec to use for streaming")
|
||||
if err := viper.BindPFlag("vcodec", cmd.PersistentFlags().Lookup("vc")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("vp", "", "Video codec parameters to use for streaming")
|
||||
if err := viper.BindPFlag("vparams", cmd.PersistentFlags().Lookup("vp")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *WebRTC) Set() {
|
||||
s.Device = strings.ToLower(viper.GetString("device"))
|
||||
s.AudioCodec = strings.ToLower(viper.GetString("acodec"))
|
||||
s.AudioParams = strings.ToLower(viper.GetString("aparams"))
|
||||
s.Display = strings.ToLower(viper.GetString("display"))
|
||||
s.VideoCodec = strings.ToLower(viper.GetString("vcodec"))
|
||||
s.VideoParams = strings.ToLower(viper.GetString("vparams"))
|
||||
}
|
30
server/internal/config/websocket.go
Normal file
30
server/internal/config/websocket.go
Normal file
@ -0,0 +1,30 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
type WebSocket struct {
|
||||
Password string
|
||||
AdminPassword string
|
||||
}
|
||||
|
||||
func (WebSocket) Init(cmd *cobra.Command) error {
|
||||
cmd.PersistentFlags().String("password", "neko", "Password for connecting to stream")
|
||||
if err := viper.BindPFlag("password", cmd.PersistentFlags().Lookup("password")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("admin", "admin", "Admin password for connecting to stream")
|
||||
if err := viper.BindPFlag("admin", cmd.PersistentFlags().Lookup("admin")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *WebSocket) Set() {
|
||||
s.Password = viper.GetString("password")
|
||||
s.AdminPassword = viper.GetString("admin")
|
||||
}
|
Reference in New Issue
Block a user