@@ -16,22 +16,32 @@ import (
1616)
1717
1818const (
19- Wincred = "wincred"
20- Osxkeychain = "osxkeychain"
21- Secretservice = "secretservice"
22- Pass = "pass"
23- File = "file"
24- Sqlite = "sqlite"
19+ WincredCredHelper = "wincred"
20+ OsxkeychainCredHelper = "osxkeychain"
21+ SecretserviceCredHelper = "secretservice"
22+ PassCredHelper = "pass"
23+ FileCredHelper = "file"
24+ SqliteCredHelper = "sqlite"
2525
2626 GPTScriptHelperPrefix = "gptscript-credential-"
2727)
2828
2929var (
30- darwinHelpers = []string {Osxkeychain , File , Sqlite }
31- windowsHelpers = []string {Wincred , File }
32- linuxHelpers = []string {Secretservice , Pass , File , Sqlite }
30+ darwinHelpers = []string {OsxkeychainCredHelper , FileCredHelper , SqliteCredHelper }
31+ windowsHelpers = []string {WincredCredHelper , FileCredHelper }
32+ linuxHelpers = []string {SecretserviceCredHelper , PassCredHelper , FileCredHelper , SqliteCredHelper }
3333)
3434
35+ func listAsString (helpers []string ) string {
36+ if len (helpers ) == 0 {
37+ return ""
38+ } else if len (helpers ) == 1 {
39+ return helpers [0 ]
40+ }
41+
42+ return strings .Join (helpers [:len (helpers )- 1 ], ", " ) + " or " + helpers [len (helpers )- 1 ]
43+ }
44+
3545type AuthConfig types.AuthConfig
3646
3747func (a AuthConfig ) MarshalJSON () ([]byte , error ) {
@@ -159,13 +169,13 @@ func ReadCLIConfig(gptscriptConfigFile string) (*CLIConfig, error) {
159169 errMsg := fmt .Sprintf ("invalid credential store '%s'" , result .CredentialsStore )
160170 switch runtime .GOOS {
161171 case "darwin" :
162- errMsg += " (use 'osxkeychain', 'file', or 'sqlite')"
172+ errMsg += fmt . Sprintf ( " (use %s)" , listAsString ( darwinHelpers ))
163173 case "windows" :
164- errMsg += " (use 'wincred' or 'file')"
174+ errMsg += fmt . Sprintf ( " (use %s)" , listAsString ( windowsHelpers ))
165175 case "linux" :
166- errMsg += " (use 'secretservice', 'pass', 'file', or 'sqlite')"
176+ errMsg += fmt . Sprintf ( " (use %s)" , listAsString ( linuxHelpers ))
167177 default :
168- errMsg += " (use ' file')"
178+ errMsg += fmt . Sprintf ( " (use file)" )
169179 }
170180 errMsg += fmt .Sprintf ("\n Please edit your config file at %s to fix this." , result .location )
171181
@@ -178,11 +188,11 @@ func ReadCLIConfig(gptscriptConfigFile string) (*CLIConfig, error) {
178188func (c * CLIConfig ) setDefaultCredentialsStore () error {
179189 switch runtime .GOOS {
180190 case "darwin" :
181- c .CredentialsStore = Osxkeychain
191+ c .CredentialsStore = OsxkeychainCredHelper
182192 case "windows" :
183- c .CredentialsStore = Wincred
193+ c .CredentialsStore = WincredCredHelper
184194 default :
185- c .CredentialsStore = File
195+ c .CredentialsStore = FileCredHelper
186196 }
187197 return c .Save ()
188198}
@@ -196,7 +206,7 @@ func isValidCredentialHelper(helper string) bool {
196206 case "linux" :
197207 return slices .Contains (linuxHelpers , helper )
198208 default :
199- return helper == File
209+ return helper == FileCredHelper
200210 }
201211}
202212
0 commit comments