aboutsummaryrefslogtreecommitdiff
path: root/cmd/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/main.go')
-rw-r--r--cmd/main.go41
1 files changed, 22 insertions, 19 deletions
diff --git a/cmd/main.go b/cmd/main.go
index c1ff827..57687d9 100644
--- a/cmd/main.go
+++ b/cmd/main.go
@@ -9,30 +9,33 @@ import (
9) 9)
10 10
11var ( 11var (
12 baseURL = flag.String("url", "", "URL to your Subsonic server") 12 configFile = flag.String("config", "", "Path to the configuration file")
13 username = flag.String("username", "", "Subsonic username")
14 password = flag.String("password", "", "Subsonic password")
15) 13)
16 14
17func main() { 15func main() {
18 flag.Parse() 16 flag.Parse()
19 17
20 cfg, err := src.LoadDefaultConfig() 18 var cfg *src.Config
21 if err != nil { 19 var err error
22 fmt.Printf("Could not start termsonic: %v", err) 20 if *configFile == "" {
23 os.Exit(1) 21 cfg, err = src.LoadDefaultConfig()
24 } 22 if err != nil {
25 23 fmt.Printf("Could not start termsonic: %v", err)
26 if *baseURL != "" { 24 os.Exit(1)
27 cfg.BaseURL = *baseURL 25 }
28 } 26 } else {
29 27 f, err := os.Open(*configFile)
30 if *username != "" { 28 if err != nil {
31 cfg.Username = *username 29 fmt.Printf("Could not read configuration file: %v", err)
32 } 30 os.Exit(1)
33 31 }
34 if *password != "" { 32 f.Close()
35 cfg.Password = *password 33
34 cfg, err = src.LoadConfigFromFile(*configFile)
35 if err != nil {
36 fmt.Printf("Error loading configuration file: %v", err)
37 os.Exit(1)
38 }
36 } 39 }
37 40
38 src.Run(cfg) 41 src.Run(cfg)