Skip to content

Commit

Permalink
Merge v0.0.4
Browse files Browse the repository at this point in the history
Merge remote-tracking branch 'origin/master' into support-windows
  • Loading branch information
3846masa committed Feb 13, 2017
2 parents 8a6d783 + e7e6427 commit bb652d4
Show file tree
Hide file tree
Showing 8 changed files with 96 additions and 8 deletions.
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Change log

## 0.0.4 - 2017-02-07
### Added
* `whalebrew edit` command for editing packages

### Fixed
* Files being written as root

## 0.0.3 - 2017-01-30
### Fixed

Expand All @@ -17,4 +24,3 @@
## 0.0.1 - 2017-01-26

Initial release.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ First, [install Docker](https://docs.docker.com/engine/installation/). The easie

Next, on macOS and Linux:

curl -L "https://github.com/bfirsh/whalebrew/releases/download/0.0.3/whalebrew-$(uname -s)-$(uname -m)" -o /usr/local/bin/whalebrew; chmod +x /usr/local/bin/whalebrew
curl -L "https://github.com/bfirsh/whalebrew/releases/download/0.0.4/whalebrew-$(uname -s)-$(uname -m)" -o /usr/local/bin/whalebrew; chmod +x /usr/local/bin/whalebrew

Windows support is theoretically possible, but not implemented yet.

Expand Down
18 changes: 18 additions & 0 deletions client/client.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package client

import (
"github.com/docker/docker/client"
)

// DefaultVersion is the Engine API version used by Whalebrew
const DefaultVersion string = "1.20"

// NewClient returns a Docker client configured for Whalebrew
func NewClient() (*client.Client, error) {
cli, err := client.NewEnvClient()
if err != nil {
return cli, err
}
cli.UpdateClientVersion(DefaultVersion)
return cli, nil
}
55 changes: 55 additions & 0 deletions cmd/edit.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package cmd

import (
"os"
"os/exec"
"path"
"syscall"

"github.com/bfirsh/whalebrew/packages"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)

func init() {
RootCmd.AddCommand(editCommand)
}

var editCommand = &cobra.Command{
Use: "edit PACKAGENAME",
Short: "Edit a package file",
Long: "Edit a package file using your default editor ($EDITOR).",
DisableFlagParsing: true,
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) < 1 {
return cmd.Help()
}

pkgName := args[0]
pm := packages.NewPackageManager(viper.GetString("install_path"))
_, err := pm.Load(pkgName)
if err != nil {
return err
}

editor, ok := os.LookupEnv("EDITOR")
if !ok {
editor, ok = os.LookupEnv("GIT_EDITOR")
if !ok {
editor = "vi"
}
}

editorPath, err := exec.LookPath(editor)
if err != nil {
return err
}

editorArgs := []string{
editorPath,
path.Join(pm.InstallPath, pkgName),
}

return syscall.Exec(editorPath, editorArgs, os.Environ())
},
}
7 changes: 4 additions & 3 deletions cmd/install.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ import (
"os/exec"
"path"

"github.com/bfirsh/whalebrew/client"
"github.com/bfirsh/whalebrew/packages"
"github.com/docker/docker/client"
dockerClient "github.com/docker/docker/client"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
Expand All @@ -34,13 +35,13 @@ var installCommand = &cobra.Command{

imageName := args[0]

cli, err := client.NewEnvClient()
cli, err := client.NewClient()
if err != nil {
return err
}
imageInspect, _, err := cli.ImageInspectWithRaw(context.Background(), imageName)
if err != nil {
if client.IsErrNotFound(err) {
if dockerClient.IsErrNotFound(err) {
fmt.Printf("Unable to find image '%s' locally\n", imageName)
if err = pullImage(imageName); err != nil {
return err
Expand Down
8 changes: 8 additions & 0 deletions cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,14 @@ var runCommand = &cobra.Command{
dockerArgs = append(dockerArgs, "-p")
dockerArgs = append(dockerArgs, portmap)
}

user, err := user.Current()
if err != nil {
return err
}
dockerArgs = append(dockerArgs, "-u")
dockerArgs = append(dockerArgs, user.Uid + ":" + user.Gid)

dockerArgs = append(dockerArgs, pkg.Image)
dockerArgs = append(dockerArgs, args[1:]...)

Expand Down
4 changes: 2 additions & 2 deletions cmd/search.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import (
"fmt"
"sort"

"github.com/bfirsh/whalebrew/client"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
"github.com/spf13/cobra"
)

Expand All @@ -23,7 +23,7 @@ var searchCommand = &cobra.Command{
return fmt.Errorf("Only one search term is supported")
}

cli, err := client.NewEnvClient()
cli, err := client.NewClient()
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion version/version.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package version

// Version is the current Whalebrew version
const Version = "0.0.3"
const Version = "0.0.4"

0 comments on commit bb652d4

Please sign in to comment.