Compare commits

...

3 Commits

Author SHA1 Message Date
Augusto Dwenger J. fbe182580e Fix example usage
ci/woodpecker/push/oci-image-build Pipeline was successful Details
2024-03-08 21:10:56 +01:00
Augusto Dwenger J. 4448d3afa1 Add flag validation 2024-03-08 21:10:34 +01:00
Augusto Dwenger J. a603a56306 Add flag validation 2024-03-08 21:05:09 +01:00
2 changed files with 27 additions and 3 deletions

View File

@ -7,11 +7,9 @@ registry.
```yaml
delete-tag:
image: rg.fr-par.scw.cloud/hamburghammer/scaleway-delete-image-plugin/plugin
image: rg.fr-par.scw.cloud/hamburghammer/scaleway-delete-image-plugin
secrets: [token]
settings:
token:
from_secret: scaleway_token
image-name: foo/bar
tag: latest
region: fr-par

26
main.go
View File

@ -3,6 +3,7 @@ package main
import (
"context"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
@ -54,6 +55,14 @@ func (p *Plugin) Flags() []cli.Flag {
}
func (p *Plugin) Execute(ctx context.Context) error {
missingFlags := requiredFlags(p.Settings)
if len(missingFlags) != 0 {
log.Error().Msg("following flags are missing:")
for _, errMsg := range missingFlags {
log.Error().Msg("-" + errMsg)
}
return errors.New("missing required flags")
}
log.Info().Msg("start")
token := p.Settings.Token
region := p.Settings.Region
@ -78,6 +87,23 @@ func (p *Plugin) Execute(ctx context.Context) error {
return nil
}
func requiredFlags(settings *Settings) []string {
var errorList []string
if settings.ImageName == "" {
errorList = append(errorList, "image-name")
}
if settings.Tag == "" {
errorList = append(errorList, "tag")
}
if settings.Region == "" {
errorList = append(errorList, "region")
}
if settings.Token == "" {
errorList = append(errorList, "token")
}
return errorList
}
func main() {
p := &Plugin{
Settings: &Settings{},