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:
3333 - json
3434 - req
3535 - nallowed
36+ - url
Original file line number Diff line number Diff line change @@ -16,7 +16,9 @@ import (
1616
1717type RemoteFile struct {
1818 URL string `yaml:"url"`
19+ URLEnv string `yaml:"url_env"`
1920 HeaderFromENV string `yaml:"header_from_env"`
21+ PrivateTokenENV string `yaml:"private_token_env"`
2022 AllowedItemsKey string `yaml:"allowed_items_key"`
2123}
2224
Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ func New(filename string) (Aspell, error) {
1414 var err error
1515 fileExists := true
1616 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 () )
1818 fileExists = false
1919 }
2020
@@ -25,11 +25,15 @@ func New(filename string) (Aspell, error) {
2525 }
2626
2727 var extraAllowedWords []string
28- if aspell .RemoteFile .URL != "" {
28+ if aspell .RemoteFile .URL != "" || aspell . RemoteFile . URLEnv != "" {
2929 extraAllowedWords , err = fetchRemoteFile (aspell )
3030 if err != nil {
31+ log .Printf ("warning: aspell remote file (%s)" , err .Error ())
3132 return Aspell {}, err
3233 }
34+ if len (extraAllowedWords ) == 0 {
35+ log .Printf ("warning: aspell remote file is empty" )
36+ }
3337 }
3438
3539 for i , word := range aspell .AllowedWords {
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package aspell
22
33import (
44 "encoding/json"
5+ "fmt"
56 "net/http"
67 "os"
78 "strings"
@@ -11,8 +12,8 @@ import (
1112
1213func fetchRemoteFile (aspell Aspell ) ([]string , error ) {
1314 url := aspell .RemoteFile .URL
14- if url = = "" {
15- return [] string {}, nil
15+ if aspell . RemoteFile . URLEnv ! = "" {
16+ url = os . Getenv ( aspell . RemoteFile . URLEnv )
1617 }
1718
1819 req , err := http .NewRequest ("GET" , url , nil )
@@ -24,15 +25,22 @@ func fetchRemoteFile(aspell Aspell) ([]string, error) {
2425 envValue := os .Getenv (aspell .RemoteFile .HeaderFromENV )
2526 req .Header .Set (aspell .RemoteFile .HeaderFromENV , envValue )
2627 }
28+ if aspell .RemoteFile .PrivateTokenENV != "" {
29+ envValue := os .Getenv (aspell .RemoteFile .PrivateTokenENV )
30+ req .Header .Set ("PRIVATE-TOKEN" , envValue )
31+ }
2732
2833 client := & http.Client {}
2934 resp , err := client .Do (req )
3035 if err != nil {
3136 return nil , err
3237 }
33-
3438 defer resp .Body .Close ()
3539
40+ if resp .StatusCode != http .StatusOK {
41+ return nil , fmt .Errorf ("error fetching remote file: %s" , resp .Status )
42+ }
43+
3644 var data map [string ]interface {}
3745 err = json .NewDecoder (resp .Body ).Decode (& data )
3846 if err != nil {
You can’t perform that action at this time.
0 commit comments