Skip to content

Commit

Permalink
Changes based on PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
jromero committed Apr 9, 2019
1 parent f952914 commit 9690e64
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 48 deletions.
47 changes: 0 additions & 47 deletions commands/build.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
package commands

import (
"fmt"
"math/rand"
"text/tabwriter"
"time"

"github.com/spf13/cobra"

"github.com/buildpack/pack"
Expand All @@ -15,25 +10,6 @@ import (
"github.com/buildpack/pack/style"
)

type suggestedBuilder struct {
name string
image string
info string
}

var suggestedBuilders = [][]suggestedBuilder{
{
{"Cloud Foundry", "cloudfoundry/cnb:bionic", "small base image with Java & Node.js"},
{"Cloud Foundry", "cloudfoundry/cnb:cflinuxfs3", "larger base image with Java, Node.js & Python"},
},
{
{"Heroku", "heroku/buildpacks", "heroku-18 base image with official Heroku buildpacks"},
},
}

func init() {
rand.Seed(time.Now().UnixNano())
}

func Build(logger *logging.Logger, fetcher pack.Fetcher) *cobra.Command {
var buildFlags pack.BuildFlags
Expand Down Expand Up @@ -82,29 +58,6 @@ func Build(logger *logging.Logger, fetcher pack.Fetcher) *cobra.Command {
return cmd
}

func suggestSettingBuilder(logger *logging.Logger) {
logger.Info("Please select a default builder with:\n")
logger.Info("\tpack set-default-builder <builder image>\n")
suggestBuilders(logger)
}

func suggestBuilders(logger *logging.Logger) {
logger.Info("Suggested builders:\n")

tw := tabwriter.NewWriter(logger.RawWriter(), 10, 10, 5, ' ', tabwriter.TabIndent)
for _, i := range rand.Perm(len(suggestedBuilders)) {
builders := suggestedBuilders[i]
for _, builder := range builders {
_, _ = tw.Write([]byte(fmt.Sprintf("\t%s:\t%s\t%s\t\n", builder.name, style.Symbol(builder.image), builder.info)))
}
}
_ = tw.Flush()

logger.Info("")
logger.Tip("Learn more about a specific builder with:\n")
logger.Info("\tpack inspect-builder [builder image]")
}

func buildCommandFlags(cmd *cobra.Command, buildFlags *pack.BuildFlags) {
cmd.Flags().StringVarP(&buildFlags.AppDir, "path", "p", "", "Path to app dir (defaults to current working directory)")
cmd.Flags().StringVar(&buildFlags.Builder, "builder", "", "Builder (defaults to builder configured by 'set-default-builder')")
Expand Down
43 changes: 43 additions & 0 deletions commands/commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,35 @@ package commands
import (
"context"
"fmt"
"github.com/buildpack/pack/style"
"math/rand"
"os"
"os/signal"
"syscall"
"text/tabwriter"

"github.com/spf13/cobra"

"github.com/buildpack/pack/logging"
)


type suggestedBuilder struct {
name string
image string
info string
}

var suggestedBuilders = [][]suggestedBuilder{
{
{"Cloud Foundry", "cloudfoundry/cnb:bionic", "small base image with Java & Node.js"},
{"Cloud Foundry", "cloudfoundry/cnb:cflinuxfs3", "larger base image with Java, Node.js & Python"},
},
{
{"Heroku", "heroku/buildpacks", "heroku-18 base image with official Heroku buildpacks"},
},
}

// TODO: Check if most recent cobra version fixed bug in help strings. It was not always capitalizing the first
// letter in the help string. If it's fixed, we can remove this.
func AddHelpFlag(cmd *cobra.Command, commandName string) {
Expand Down Expand Up @@ -49,3 +69,26 @@ func createCancellableContext() context.Context {

return ctx
}

func suggestSettingBuilder(logger *logging.Logger) {
logger.Info("Please select a default builder with:\n")
logger.Info("\tpack set-default-builder <builder image>\n")
suggestBuilders(logger)
}

func suggestBuilders(logger *logging.Logger) {
logger.Info("Suggested builders:\n")

tw := tabwriter.NewWriter(logger.RawWriter(), 10, 10, 5, ' ', tabwriter.TabIndent)
for _, i := range rand.Perm(len(suggestedBuilders)) {
builders := suggestedBuilders[i]
for _, builder := range builders {
_, _ = tw.Write([]byte(fmt.Sprintf("\t%s:\t%s\t%s\t\n", builder.name, style.Symbol(builder.image), builder.info)))
}
}
_ = tw.Flush()

logger.Info("")
logger.Tip("Learn more about a specific builder with:\n")
logger.Info("\tpack inspect-builder [builder image]")
}
2 changes: 1 addition & 1 deletion commands/suggest_builders.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
func SuggestBuilders(logger *logging.Logger) *cobra.Command {
cmd := &cobra.Command{
Use: "suggest-builders",
Short: "Display list of builders recommended by the Cloud Native Buildpacks project",
Short: "Display list of recommended builders",
Args: cobra.NoArgs,
RunE: logError(logger, func(cmd *cobra.Command, args []string) error {
suggestBuilders(logger)
Expand Down

0 comments on commit 9690e64

Please sign in to comment.