Files
abra/pkg/secret/pass.go
decentral1se 396f0f4406
Some checks failed
continuous-integration/drone/push Build is failing
WIP: feat: translation support
See #483
2025-08-23 16:19:22 +02:00

55 lines
1.2 KiB
Go

package secret
import (
"errors"
"fmt"
"os/exec"
"coopcloud.tech/abra/pkg/i18n"
"coopcloud.tech/abra/pkg/log"
)
// PassInsertSecret inserts a secret into a pass store.
func PassInsertSecret(secretValue, secretName, appName, server string) error {
if _, err := exec.LookPath("pass"); err != nil {
return errors.New(i18n.G("pass command not found on $PATH, is it installed?"))
}
cmd := fmt.Sprintf(
"echo %s | pass insert hosts/%s/%s/%s -m",
secretValue, server, appName, secretName,
)
log.Debug(i18n.G("attempting to run %s", cmd))
if err := exec.Command("bash", "-c", cmd).Run(); err != nil {
return err
}
log.Info(i18n.G("%s inserted into pass store", secretName))
return nil
}
// PassRmSecret deletes a secret from a pass store.
func PassRmSecret(secretName, appName, server string) error {
if _, err := exec.LookPath("pass"); err != nil {
return errors.New(i18n.G("pass command not found on $PATH, is it installed?"))
}
cmd := fmt.Sprintf(
"pass rm --force hosts/%s/%s/%s",
server, appName, secretName,
)
log.Debug(i18n.G("attempting to run %s", cmd))
if err := exec.Command("bash", "-c", cmd).Run(); err != nil {
return err
}
log.Info(i18n.G("%s removed from pass store", secretName))
return nil
}