Skip to content
This repository was archived by the owner on Mar 27, 2024. It is now read-only.

Always use docker client #52

Merged
merged 2 commits into from
Aug 30, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 73 additions & 73 deletions Godeps/Godeps.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,6 @@ To get a JSON version of the container-diff output add a `-j` or `--json` flag.

```container-diff <img1> <img2> -j```

To use the docker client instead of shelling out to your local docker daemon, add a `-e` or `--eng` flag.

```container-diff <img1> <img2> -e```

To order files and packages by size (in descending order) when performing file system or package analyses/diffs, add a `-o` or `--order` flag.
Expand Down
16 changes: 12 additions & 4 deletions cmd/analyze.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package cmd

import (
"errors"
"fmt"
"os"

"github.com/GoogleCloudPlatform/container-diff/differs"
Expand All @@ -19,9 +20,6 @@ var analyzeCmd = &cobra.Command{
glog.Error(err.Error())
os.Exit(1)
}

utils.SetDockerEngine(eng)

analyzeArgs := []string{}
allAnalyzers := getAllAnalyzers()
for _, name := range allAnalyzers {
Expand Down Expand Up @@ -52,7 +50,17 @@ func checkAnalyzeArgNum(args []string) (bool, error) {
}

func analyzeImage(imageArg string, analyzerArgs []string) error {
image, err := utils.ImagePrepper{imageArg}.GetImage()
cli, err := NewClient()
if err != nil {
return fmt.Errorf("Error getting docker client for differ: %s", err)
}
defer cli.Close()
ip := utils.ImagePrepper{
Source: imageArg,
Client: cli,
}

image, err := ip.GetImage()
if err != nil {
glog.Error(err.Error())
cleanupImage(image)
Expand Down
22 changes: 16 additions & 6 deletions cmd/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package cmd

import (
"errors"
"fmt"
"os"
"sync"

Expand All @@ -20,9 +21,6 @@ var diffCmd = &cobra.Command{
glog.Error(err.Error())
os.Exit(1)
}

utils.SetDockerEngine(eng)

analyzeArgs := []string{}
allAnalyzers := getAllAnalyzers()
for _, name := range allAnalyzers {
Expand Down Expand Up @@ -53,24 +51,36 @@ func checkDiffArgNum(args []string) (bool, error) {
}

func diffImages(image1Arg, image2Arg string, diffArgs []string) error {
cli, err := NewClient()
if err != nil {
return fmt.Errorf("Error getting docker client for differ: %s", err)
}
defer cli.Close()
var wg sync.WaitGroup
wg.Add(2)

glog.Infof("Starting diff on images %s and %s, using differs: %s", image1Arg, image2Arg, diffArgs)

var image1, image2 utils.Image
var err error
go func() {
defer wg.Done()
image1, err = utils.ImagePrepper{image1Arg}.GetImage()
ip := utils.ImagePrepper{
Source: image1Arg,
Client: cli,
}
image1, err = ip.GetImage()
if err != nil {
glog.Error(err.Error())
}
}()

go func() {
defer wg.Done()
image2, err = utils.ImagePrepper{image2Arg}.GetImage()
ip := utils.ImagePrepper{
Source: image2Arg,
Client: cli,
}
image2, err = ip.GetImage()
if err != nil {
glog.Error(err.Error())
}
Expand Down
Loading