diff --git a/Makefile b/Makefile index a6450b92..a0acf950 100644 --- a/Makefile +++ b/Makefile @@ -21,10 +21,13 @@ ifeq ($(INTERACTIVE), 1) endif DOCKER_RUN_DOCKER := $(DOCKER_FLAGS) "$(DOCKER_IMAGE)" +GIT_COMMIT := $(shell git rev-parse HEAD 2> /dev/null || true) +LDFLAGS := "-X github.com/projectatomic/skopeo.GitCommit=${GIT_COMMIT} ${LDFLAGS}" + all: man binary binary: - go build -o ${DEST}skopeo . + go build -ldflags ${LDFLAGS} -o ${DEST}skopeo ./cmd/skopeo build-container: docker build ${DOCKER_BUILD_ARGS} -t "$(DOCKER_IMAGE)" . diff --git a/docker.go b/docker.go index 67ba44ed..4ba4afe2 100644 --- a/docker.go +++ b/docker.go @@ -1,4 +1,4 @@ -package main +package skopeo import ( "crypto/tls" diff --git a/inspect.go b/inspect.go deleted file mode 100644 index 7830dd4c..00000000 --- a/inspect.go +++ /dev/null @@ -1,69 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "strings" - - "github.com/Sirupsen/logrus" - "github.com/codegangsta/cli" - 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 := 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 -} diff --git a/layers.go b/layers.go deleted file mode 100644 index 7dbab1bb..00000000 --- a/layers.go +++ /dev/null @@ -1,22 +0,0 @@ -package main - -import ( - "github.com/Sirupsen/logrus" - "github.com/codegangsta/cli" -) - -// TODO(runcom): document args and usage -var layersCmd = cli.Command{ - Name: "layers", - Usage: "get images layers", - ArgsUsage: ``, - Action: func(context *cli.Context) { - img, err := parseImage(context.Args().First()) - if err != nil { - logrus.Fatal(err) - } - if err := img.Layers(context.Args().Tail()...); err != nil { - logrus.Fatal(err) - } - }, -} diff --git a/main.go b/main.go deleted file mode 100644 index 3bcc03a1..00000000 --- a/main.go +++ /dev/null @@ -1,57 +0,0 @@ -package main - -import ( - "os" - - "github.com/Sirupsen/logrus" - "github.com/codegangsta/cli" - "github.com/docker/docker/cliconfig" -) - -const ( - version = "0.1.12-dev" - usage = "interact with registries" -) - -func main() { - app := cli.NewApp() - app.Name = "skopeo" - app.Version = version - app.Usage = usage - // 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) - } -} diff --git a/utils.go b/utils.go index 966c2417..43bf6679 100644 --- a/utils.go +++ b/utils.go @@ -1,4 +1,4 @@ -package main +package skopeo import ( "fmt" @@ -7,7 +7,7 @@ import ( "github.com/projectatomic/skopeo/types" ) -func parseImage(img string) (types.Image, error) { +func ParseImage(img string) (types.Image, error) { switch { case strings.HasPrefix(img, types.DockerPrefix): return parseDockerImage(strings.TrimPrefix(img, dockerPrefix)) diff --git a/version.go b/version.go new file mode 100644 index 00000000..93cd1cc1 --- /dev/null +++ b/version.go @@ -0,0 +1,5 @@ +package skopeo + +const Version = "0.1.12-dev" + +var GitCommit = ""