WIP: feat: translation support
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
See #483
This commit is contained in:
@ -5,6 +5,7 @@ package secret
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"slices"
|
||||
"strconv"
|
||||
@ -21,6 +22,7 @@ import (
|
||||
"github.com/decentral1se/passgen"
|
||||
"github.com/docker/docker/api/types"
|
||||
dockerClient "github.com/docker/docker/client"
|
||||
"github.com/leonelquinteros/gotext"
|
||||
)
|
||||
|
||||
// Secret represents a secret.
|
||||
@ -57,7 +59,7 @@ func GeneratePassword(length uint, charset string) (string, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
log.Debugf("generated %s", strings.Join(passwords, ", "))
|
||||
log.Debug(gotext.Get("generated %s", strings.Join(passwords, ", ")))
|
||||
|
||||
return passwords[0], nil
|
||||
}
|
||||
@ -75,7 +77,7 @@ func GeneratePassphrase() (string, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
log.Debugf("generated %s", strings.Join(passphrases, ", "))
|
||||
log.Debug(gotext.Get("generated %s", strings.Join(passphrases, ", ")))
|
||||
|
||||
return passphrases[0], nil
|
||||
}
|
||||
@ -114,18 +116,18 @@ func ReadSecretsConfig(appEnvPath string, composeFiles []string, stackName strin
|
||||
}
|
||||
|
||||
if len(enabledSecrets) == 0 {
|
||||
log.Debugf("not generating app secrets, none enabled in recipe config")
|
||||
log.Debug(gotext.Get("not generating app secrets, none enabled in recipe config"))
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
secretValues := map[string]Secret{}
|
||||
for secretId, secretConfig := range composeConfig.Secrets {
|
||||
if string(secretConfig.Name[len(secretConfig.Name)-1]) == "_" {
|
||||
return nil, fmt.Errorf("missing version for secret? (%s)", secretId)
|
||||
return nil, errors.New(gotext.Get("missing version for secret? (%s)", secretId))
|
||||
}
|
||||
|
||||
if !(slices.Contains(enabledSecrets, secretId)) {
|
||||
log.Warnf("%s not enabled in recipe config, skipping", secretId)
|
||||
log.Warnf(gotext.Get("%s not enabled in recipe config, skipping", secretId))
|
||||
continue
|
||||
}
|
||||
|
||||
@ -134,7 +136,7 @@ func ReadSecretsConfig(appEnvPath string, composeFiles []string, stackName strin
|
||||
value := Secret{Version: secretVersion, RemoteName: secretConfig.Name}
|
||||
|
||||
if len(value.RemoteName) > config.MAX_DOCKER_SECRET_LENGTH {
|
||||
return nil, fmt.Errorf("secret %s is > %d chars when combined with %s", secretId, config.MAX_DOCKER_SECRET_LENGTH, stackName)
|
||||
return nil, errors.New(gotext.Get("secret %s is > %d chars when combined with %s", secretId, config.MAX_DOCKER_SECRET_LENGTH, stackName))
|
||||
}
|
||||
|
||||
// Check if the length modifier is set for this secret.
|
||||
@ -202,12 +204,12 @@ func GenerateSecrets(cl *dockerClient.Client, secrets map[string]Secret, server
|
||||
defer wg.Done()
|
||||
|
||||
if secret.SkipGenerate {
|
||||
log.Debugf("skipping generation of %s (generate=false)", secretName)
|
||||
log.Debug(gotext.Get("skipping generation of %s (generate=false)", secretName))
|
||||
ch <- nil
|
||||
return
|
||||
}
|
||||
|
||||
log.Debugf("attempting to generate and store %s on %s", secret.RemoteName, server)
|
||||
log.Debug(gotext.Get("attempting to generate and store %s on %s", secret.RemoteName, server))
|
||||
|
||||
if secret.Length > 0 {
|
||||
password, err := GeneratePassword(uint(secret.Length), secret.Charset)
|
||||
@ -218,7 +220,7 @@ func GenerateSecrets(cl *dockerClient.Client, secrets map[string]Secret, server
|
||||
|
||||
if err := client.StoreSecret(cl, secret.RemoteName, password, server); err != nil {
|
||||
if strings.Contains(err.Error(), "AlreadyExists") {
|
||||
log.Warnf("%s already exists", secret.RemoteName)
|
||||
log.Warnf(gotext.Get("%s already exists", secret.RemoteName))
|
||||
ch <- nil
|
||||
} else {
|
||||
ch <- err
|
||||
@ -238,7 +240,7 @@ func GenerateSecrets(cl *dockerClient.Client, secrets map[string]Secret, server
|
||||
|
||||
if err := client.StoreSecret(cl, secret.RemoteName, passphrase, server); err != nil {
|
||||
if strings.Contains(err.Error(), "AlreadyExists") {
|
||||
log.Warnf("%s already exists", secret.RemoteName)
|
||||
log.Warnf(gotext.Get("%s already exists", secret.RemoteName))
|
||||
ch <- nil
|
||||
} else {
|
||||
ch <- err
|
||||
@ -263,7 +265,7 @@ func GenerateSecrets(cl *dockerClient.Client, secrets map[string]Secret, server
|
||||
}
|
||||
}
|
||||
|
||||
log.Debugf("generated and stored %v on %s", secrets, server)
|
||||
log.Debug(gotext.Get("generated and stored %v on %s", secrets, server))
|
||||
|
||||
return secretsGenerated, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user