File tree Expand file tree Collapse file tree 4 files changed +20
-5
lines changed Expand file tree Collapse file tree 4 files changed +20
-5
lines changed Original file line number Diff line number Diff line change @@ -33,3 +33,4 @@ allowed:
33
33
- json
34
34
- req
35
35
- nallowed
36
+ - url
Original file line number Diff line number Diff line change @@ -16,7 +16,9 @@ import (
16
16
17
17
type RemoteFile struct {
18
18
URL string `yaml:"url"`
19
+ URLEnv string `yaml:"url_env"`
19
20
HeaderFromENV string `yaml:"header_from_env"`
21
+ PrivateTokenENV string `yaml:"private_token_env"`
20
22
AllowedItemsKey string `yaml:"allowed_items_key"`
21
23
}
22
24
Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ func New(filename string) (Aspell, error) {
14
14
var err error
15
15
fileExists := true
16
16
if data , err = os .ReadFile (filename ); err != nil {
17
- log .Printf ("warning: aspell exceptions file not found (%s)" , err )
17
+ log .Printf ("warning: aspell exceptions file not found (%s)" , err . Error () )
18
18
fileExists = false
19
19
}
20
20
@@ -25,11 +25,15 @@ func New(filename string) (Aspell, error) {
25
25
}
26
26
27
27
var extraAllowedWords []string
28
- if aspell .RemoteFile .URL != "" {
28
+ if aspell .RemoteFile .URL != "" || aspell . RemoteFile . URLEnv != "" {
29
29
extraAllowedWords , err = fetchRemoteFile (aspell )
30
30
if err != nil {
31
+ log .Printf ("warning: aspell remote file (%s)" , err .Error ())
31
32
return Aspell {}, err
32
33
}
34
+ if len (extraAllowedWords ) == 0 {
35
+ log .Printf ("warning: aspell remote file is empty" )
36
+ }
33
37
}
34
38
35
39
for i , word := range aspell .AllowedWords {
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package aspell
2
2
3
3
import (
4
4
"encoding/json"
5
+ "fmt"
5
6
"net/http"
6
7
"os"
7
8
"strings"
@@ -11,8 +12,8 @@ import (
11
12
12
13
func fetchRemoteFile (aspell Aspell ) ([]string , error ) {
13
14
url := aspell .RemoteFile .URL
14
- if url = = "" {
15
- return [] string {}, nil
15
+ if aspell . RemoteFile . URLEnv ! = "" {
16
+ url = os . Getenv ( aspell . RemoteFile . URLEnv )
16
17
}
17
18
18
19
req , err := http .NewRequest ("GET" , url , nil )
@@ -24,15 +25,22 @@ func fetchRemoteFile(aspell Aspell) ([]string, error) {
24
25
envValue := os .Getenv (aspell .RemoteFile .HeaderFromENV )
25
26
req .Header .Set (aspell .RemoteFile .HeaderFromENV , envValue )
26
27
}
28
+ if aspell .RemoteFile .PrivateTokenENV != "" {
29
+ envValue := os .Getenv (aspell .RemoteFile .PrivateTokenENV )
30
+ req .Header .Set ("PRIVATE-TOKEN" , envValue )
31
+ }
27
32
28
33
client := & http.Client {}
29
34
resp , err := client .Do (req )
30
35
if err != nil {
31
36
return nil , err
32
37
}
33
-
34
38
defer resp .Body .Close ()
35
39
40
+ if resp .StatusCode != http .StatusOK {
41
+ return nil , fmt .Errorf ("error fetching remote file: %s" , resp .Status )
42
+ }
43
+
36
44
var data map [string ]interface {}
37
45
err = json .NewDecoder (resp .Body ).Decode (& data )
38
46
if err != nil {
You can’t perform that action at this time.
0 commit comments