add flag for Mediatype: media, video, lofi
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 9s

This commit is contained in:
Thomas Peetz
2026-10-22 00:34:19 +02:00
parent a20eb43889
commit cdd0276020
2 changed files with 39 additions and 0 deletions
+1
View File
@@ -38,6 +38,7 @@ func init() {
exportCmd.Flags().StringVarP(&config.ServerName, "servername", "s", "local", "Define server to get Kontor items") exportCmd.Flags().StringVarP(&config.ServerName, "servername", "s", "local", "Define server to get Kontor items")
updateTitleCmd.Flags().StringVarP(&config.ServerName, "servername", "s", "local", "Define server to get Kontor items") updateTitleCmd.Flags().StringVarP(&config.ServerName, "servername", "s", "local", "Define server to get Kontor items")
addLinksCmd.Flags().StringVarP(&config.ServerName, "servername", "s", "local", "Define server to get Kontor items") addLinksCmd.Flags().StringVarP(&config.ServerName, "servername", "s", "local", "Define server to get Kontor items")
addLinksCmd.Flags().Var(&config.Mediatype, "mediatype", "MediaType: allowed values are: media, videos, lofi")
viper.BindPFlag("server", exportCmd.PersistentFlags().Lookup("server")) viper.BindPFlag("server", exportCmd.PersistentFlags().Lookup("server"))
cobra.OnInitialize(config.InitCliConfig) cobra.OnInitialize(config.InitCliConfig)
} }
+38
View File
@@ -1,18 +1,55 @@
package config package config
import ( import (
"errors"
"fmt" "fmt"
"log/slog" "log/slog"
"strings" "strings"
"github.com/spf13/cobra"
"github.com/spf13/viper" "github.com/spf13/viper"
) )
type MediaType string
const (
mediaTypeMedia MediaType = "media"
mediaTypeVideo MediaType = "video"
mediaTypeLofi MediaType = "lofi"
)
func (e *MediaType) String() string {
return string(*e)
}
func (e *MediaType) Set(v string) error {
switch v {
case "media", "video", "lofi":
*e = MediaType(v)
return nil
default:
return errors.New(`must be one of "media", "video", "lofi"`)
}
}
func (e *MediaType) Type() string {
return "MediaType"
}
func myEnumCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
return []string{
"media\thelp text for media",
"video\thelp text for video",
"lofi\thelp text for lofi",
}, cobra.ShellCompDirectiveDefault
}
var ( var (
CfgFile string CfgFile string
Verbose int Verbose int
Overwrite bool Overwrite bool
ServerName string ServerName string
Mediatype MediaType
Config CliConfig Config CliConfig
DryRun bool DryRun bool
) )
@@ -38,6 +75,7 @@ func InitCliConfig() {
viper.AddConfigPath(".") // look for config in working directory viper.AddConfigPath(".") // look for config in working directory
viper.AddConfigPath("/home/tpeetz/.config") viper.AddConfigPath("/home/tpeetz/.config")
} }
Mediatype = mediaTypeMedia
// Read the configuration file // Read the configuration file
if err := viper.ReadInConfig(); err != nil { if err := viper.ReadInConfig(); err != nil {