forked from vmware-archive/fly
-
Notifications
You must be signed in to change notification settings - Fork 0
/
check_resource.go
43 lines (34 loc) · 1.19 KB
/
check_resource.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package commands
import (
"fmt"
"github.com/concourse/atc"
"github.com/concourse/fly/commands/internal/flaghelpers"
"github.com/concourse/fly/rc"
)
type CheckResourceCommand struct {
Resource flaghelpers.ResourceFlag `short:"r" long:"resource" required:"true" value-name:"PIPELINE/RESOURCE" description:"Name of a resource to check version for"`
Version *atc.Version `short:"f" long:"from" value-name:"VERSION" description:"Version of a resource to check from, e.g. ref:abcd or path:thing-1.2.3.tgz"`
}
func (command *CheckResourceCommand) Execute(args []string) error {
target, err := rc.LoadTarget(Fly.Target)
if err != nil {
return err
}
err = target.Validate()
if err != nil {
return err
}
var version atc.Version
if command.Version != nil {
version = *command.Version
}
found, err := target.Team().CheckResource(command.Resource.PipelineName, command.Resource.ResourceName, version)
if err != nil {
return err
}
if !found {
return fmt.Errorf("pipeline '%s' or resource '%s' not found\n", command.Resource.PipelineName, command.Resource.ResourceName)
}
fmt.Printf("checked '%s'\n", command.Resource.ResourceName)
return nil
}