From 6ec2c40dc2f24039ce3263e4f19dfee73593923d Mon Sep 17 00:00:00 2001 From: Russell Troxel Date: Sat, 18 Mar 2023 10:18:31 -0700 Subject: [PATCH] Additional Compatibility Measures (#122) --- README.md | 2 +- internal/commands/prowlarr.go | 7 ++++--- internal/commands/radarr.go | 7 ++++--- internal/commands/readarr.go | 7 ++++--- internal/commands/sonarr.go | 7 ++++--- internal/config/config.go | 2 ++ internal/config/config_test.go | 15 ++++++++++++++- 7 files changed, 33 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 6e181b3..40cca40 100644 --- a/README.md +++ b/README.md @@ -174,7 +174,7 @@ Visit http://127.0.0.1:9711/metrics to see Readarr metrics |:----------------------------:|--------------------------------|----------------------------------------------------------------|-----------|:--------:| | `PORT` | `--port` or `-p` | The port exportarr will listen on | | ✅ | | `URL` | `--url` or `-u` | The full URL to Sonarr, Radarr, or Lidarr | | ✅ | -| `APIKEY` | `--api-key` or `-a` | API Key for Sonarr, Radarr or Lidarr | | ❌ | +| `API_KEY` | `--api-key` or `-a` | API Key for Sonarr, Radarr or Lidarr | | ❌ | | `API_KEY_FILE` | `--api-key-file` | API Key file location for Sonarr, Radarr or Lidarr | | ❌ | | `CONFIG` | `--config` or `-c` | Path to Sonarr, Radarr or Lidarr's `config.xml` (advanced) | | ❌ | | `INTERFACE` | `--interface` or `-i` | The interface IP exportarr will listen on | `0.0.0.0` | ❌ | diff --git a/internal/commands/prowlarr.go b/internal/commands/prowlarr.go index 5b3755a..d8deb17 100644 --- a/internal/commands/prowlarr.go +++ b/internal/commands/prowlarr.go @@ -16,9 +16,10 @@ func init() { } var prowlarrCmd = &cobra.Command{ - Use: "prowlarr", - Short: "Prometheus Exporter for Prowlarr", - Long: "Prometheus Exporter for Prowlarr.", + Use: "prowlarr", + Aliases: []string{"p"}, + Short: "Prometheus Exporter for Prowlarr", + Long: "Prometheus Exporter for Prowlarr.", RunE: func(cmd *cobra.Command, args []string) error { conf.Arr = "prowlarr" conf.ApiVersion = "v1" diff --git a/internal/commands/radarr.go b/internal/commands/radarr.go index 6c174f1..2f28c27 100644 --- a/internal/commands/radarr.go +++ b/internal/commands/radarr.go @@ -13,9 +13,10 @@ func init() { } var radarrCmd = &cobra.Command{ - Use: "radarr", - Short: "Prometheus Exporter for Radarr", - Long: "Prometheus Exporter for Radarr.", + Use: "radarr", + Aliases: []string{"r"}, + Short: "Prometheus Exporter for Radarr", + Long: "Prometheus Exporter for Radarr.", RunE: func(cmd *cobra.Command, args []string) error { conf.Arr = "radarr" serveHttp(func(r *prometheus.Registry) { diff --git a/internal/commands/readarr.go b/internal/commands/readarr.go index e9218f5..2a7b518 100644 --- a/internal/commands/readarr.go +++ b/internal/commands/readarr.go @@ -13,9 +13,10 @@ func init() { } var readarrCmd = &cobra.Command{ - Use: "readarr", - Short: "Prometheus Exporter for Readarr", - Long: "Prometheus Exporter for Readarr.", + Use: "readarr", + Aliases: []string{"b"}, + Short: "Prometheus Exporter for Readarr", + Long: "Prometheus Exporter for Readarr.", RunE: func(cmd *cobra.Command, args []string) error { conf.Arr = "readarr" conf.ApiVersion = "v1" diff --git a/internal/commands/sonarr.go b/internal/commands/sonarr.go index 6e41d18..d1fe61c 100644 --- a/internal/commands/sonarr.go +++ b/internal/commands/sonarr.go @@ -13,9 +13,10 @@ func init() { } var sonarrCmd = &cobra.Command{ - Use: "sonarr", - Short: "Prometheus Exporter for Sonarr", - Long: "Prometheus Exporter for Sonarr.", + Use: "sonarr", + Aliases: []string{"s"}, + Short: "Prometheus Exporter for Sonarr", + Long: "Prometheus Exporter for Sonarr.", RunE: func(cmd *cobra.Command, args []string) error { conf.Arr = "sonarr" serveHttp(func(r *prometheus.Registry) { diff --git a/internal/config/config.go b/internal/config/config.go index 4336a70..112d4f7 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -178,6 +178,8 @@ func backwardsCompatibilityTransforms(s string) string { switch s { case "apikey-file": return "api-key-file" + case "apikey": + return "api-key" case "basic-auth-username": return "auth-username" case "basic-auth-password": diff --git a/internal/config/config_test.go b/internal/config/config_test.go index c47a882..9a7a658 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -109,7 +109,7 @@ func TestLoadConfig_Environment(t *testing.T) { require.Equal("v3", config.ApiVersion) } -func TestLoadConfig_BackwardsCompatibility(t *testing.T) { +func TestLoadConfig_BackwardsCompatibility_ApiKeyFile(t *testing.T) { require := require.New(t) // Set environment variables @@ -127,6 +127,19 @@ func TestLoadConfig_BackwardsCompatibility(t *testing.T) { require.Equal("pass", config.AuthPassword) } +func TestLoadConfig_BackwardsCompatibility_ApiKey(t *testing.T) { + require := require.New(t) + + // Set environment variables + t.Setenv("URL", "http://localhost:8989") + t.Setenv("APIKEY", "abcdef0123456789abcdef0123456780") + t.Setenv("PORT", "1234") + + config, err := LoadConfig(&pflag.FlagSet{}) + require.NoError(err) + + require.Equal("abcdef0123456789abcdef0123456780", config.ApiKey) +} func TestLoadConfig_XMLConfig(t *testing.T) { flags := testFlagSet() flags.Set("config", "test_fixtures/config.test_xml")