mirror of
https://github.com/containers/skopeo.git
synced 2025-04-27 19:05:32 +00:00
fix gitignore
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
This commit is contained in:
parent
a73078ea75
commit
0d94172288
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
skopeo
|
||||
skopeo.1
|
||||
layers-*
|
||||
!cmd/skopeo/
|
||||
/skopeo
|
||||
/skopeo.1
|
||||
/layers-*
|
||||
|
70
cmd/skopeo/inspect.go
Normal file
70
cmd/skopeo/inspect.go
Normal file
@ -0,0 +1,70 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/Sirupsen/logrus"
|
||||
"github.com/codegangsta/cli"
|
||||
"github.com/projectatomic/skopeo"
|
||||
pkgInspect "github.com/projectatomic/skopeo/docker/inspect"
|
||||
"github.com/projectatomic/skopeo/types"
|
||||
)
|
||||
|
||||
var inspectCmd = cli.Command{
|
||||
Name: "inspect",
|
||||
Usage: "inspect images on a registry",
|
||||
ArgsUsage: ``,
|
||||
Flags: []cli.Flag{
|
||||
cli.BoolFlag{
|
||||
Name: "raw",
|
||||
Usage: "output raw manifest",
|
||||
},
|
||||
},
|
||||
Action: func(c *cli.Context) {
|
||||
if c.Bool("raw") {
|
||||
img, err := skopeo.ParseImage(c.Args().First())
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
// TODO(runcom): this is not falling back to v1
|
||||
// TODO(runcom): hardcoded schema 2 version 1
|
||||
b, err := img.RawManifest("2-1")
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
fmt.Println(string(b))
|
||||
return
|
||||
}
|
||||
// get the Image interface before inspecting...utils.go parseImage
|
||||
imgInspect, err := inspect(c)
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
out, err := json.Marshal(imgInspect)
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
fmt.Println(string(out))
|
||||
},
|
||||
}
|
||||
|
||||
func inspect(c *cli.Context) (types.ImageManifest, error) {
|
||||
var (
|
||||
imgInspect types.ImageManifest
|
||||
err error
|
||||
name = c.Args().First()
|
||||
)
|
||||
|
||||
switch {
|
||||
case strings.HasPrefix(name, types.DockerPrefix):
|
||||
imgInspect, err = pkgInspect.GetData(c, strings.Replace(name, "docker://", "", -1))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
default:
|
||||
return nil, fmt.Errorf("%s image is invalid, please use 'docker://'", name)
|
||||
}
|
||||
return imgInspect, nil
|
||||
}
|
23
cmd/skopeo/layers.go
Normal file
23
cmd/skopeo/layers.go
Normal file
@ -0,0 +1,23 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/Sirupsen/logrus"
|
||||
"github.com/codegangsta/cli"
|
||||
"github.com/projectatomic/skopeo"
|
||||
)
|
||||
|
||||
// TODO(runcom): document args and usage
|
||||
var layersCmd = cli.Command{
|
||||
Name: "layers",
|
||||
Usage: "get images layers",
|
||||
ArgsUsage: ``,
|
||||
Action: func(context *cli.Context) {
|
||||
img, err := skopeo.ParseImage(context.Args().First())
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
if err := img.Layers(context.Args().Tail()...); err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
},
|
||||
}
|
58
cmd/skopeo/main.go
Normal file
58
cmd/skopeo/main.go
Normal file
@ -0,0 +1,58 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/Sirupsen/logrus"
|
||||
"github.com/codegangsta/cli"
|
||||
"github.com/docker/docker/cliconfig"
|
||||
"github.com/projectatomic/skopeo"
|
||||
)
|
||||
|
||||
func main() {
|
||||
app := cli.NewApp()
|
||||
app.Name = "skopeo"
|
||||
if skopeo.GitCommit != "" {
|
||||
app.Version = fmt.Sprintf("%s commit: %s", skopeo.Version, skopeo.GitCommit)
|
||||
} else {
|
||||
app.Version = skopeo.Version
|
||||
}
|
||||
app.Usage = "interact with registries"
|
||||
// TODO(runcom)
|
||||
//app.EnableBashCompletion = true
|
||||
app.Flags = []cli.Flag{
|
||||
cli.BoolFlag{
|
||||
Name: "debug",
|
||||
Usage: "enable debug output",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "username",
|
||||
Value: "",
|
||||
Usage: "registry username",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "password",
|
||||
Value: "",
|
||||
Usage: "registry password",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "docker-cfg",
|
||||
Value: cliconfig.ConfigDir(),
|
||||
Usage: "Docker's cli config for auth",
|
||||
},
|
||||
}
|
||||
app.Before = func(c *cli.Context) error {
|
||||
if c.GlobalBool("debug") {
|
||||
logrus.SetLevel(logrus.DebugLevel)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
app.Commands = []cli.Command{
|
||||
inspectCmd,
|
||||
layersCmd,
|
||||
}
|
||||
if err := app.Run(os.Args); err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user