package main import ( "os" "gitlab.com/ChaotiCryptidz/musicutil/commands/copy" "gitlab.com/ChaotiCryptidz/musicutil/commands/genhtml" "gitlab.com/ChaotiCryptidz/musicutil/commands/process" "gitlab.com/ChaotiCryptidz/musicutil/commands/transcode" _ "gitlab.com/ChaotiCryptidz/musicutil/config" _ "gitlab.com/ChaotiCryptidz/musicutil/utils/transcoder" "github.com/akamensky/argparse" "github.com/rs/zerolog" "github.com/rs/zerolog/log" "github.com/spf13/viper" ) func main() { log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr}) log_level := viper.GetString("log_level") if log_level == "info" { zerolog.SetGlobalLevel(zerolog.InfoLevel) } else if log_level == "debug" { zerolog.SetGlobalLevel(zerolog.DebugLevel) } else { zerolog.SetGlobalLevel(zerolog.InfoLevel) } parser := argparse.NewParser("musicutil", "A tool for organising a music library and more.") process_cmd, process_cmd_args := process.RegisterProcessCommand(parser) transcode_cmd, transcode_cmd_args := transcode.RegisterTranscodeCommand(parser) genhtml_cmd, genhtml_cmd_args := genhtml.RegisterGenHTMLCommand(parser) copy_cmd, copy_cmd_args := copy.RegisterCopyCommand(parser) if err := parser.Parse(os.Args); err != nil { panic(err) } if process_cmd.Happened() { process.NewProcessCommand(process_cmd_args).Run() } if transcode_cmd.Happened() { transcode.NewTranscodeCommand(transcode_cmd_args).Run() } if genhtml_cmd.Happened() { genhtml.NewGenHTMLCommand(genhtml_cmd_args).Run() } if copy_cmd.Happened() { copy.NewCopyCommand(copy_cmd_args).Run() } }