Skip to content

Commit c3c5be0

Browse files
committed
MINOR: add option to set url_env and private_token_env for aspell
1 parent 9eded62 commit c3c5be0

File tree

4 files changed

+20
-5
lines changed

4 files changed

+20
-5
lines changed

.aspell.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ allowed:
3333
- json
3434
- req
3535
- nallowed
36+
- url

aspell/aspell.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ import (
1616

1717
type 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

aspell/new.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff 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 {

aspell/remote.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package aspell
22

33
import (
44
"encoding/json"
5+
"fmt"
56
"net/http"
67
"os"
78
"strings"
@@ -11,8 +12,8 @@ import (
1112

1213
func 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 {

0 commit comments

Comments
 (0)