diff --git a/example/cli/main.go b/example/cli/main.go new file mode 100644 index 0000000..ec9c42d --- /dev/null +++ b/example/cli/main.go @@ -0,0 +1,13 @@ +package main + +import ( + "log" + + "git.front.kjuulh.io/kjuulh/dagger-go/pkg/cli" +) + +func main() { + if err := cli.NewCli().Execute(); err != nil { + log.Fatal(err) + } +} diff --git a/example/golang-bin/main.go b/example/golang-bin/main.go index 32f322d..390e401 100644 --- a/example/golang-bin/main.go +++ b/example/golang-bin/main.go @@ -4,7 +4,7 @@ import ( "context" "log" - "git.front.kjuulh.io/kjuulh/dagger-go/internal" + "git.front.kjuulh.io/kjuulh/dagger-go/pkg/builder" "git.front.kjuulh.io/kjuulh/dagger-go/pkg/pipelines" ) @@ -16,7 +16,7 @@ func main() { } } func run(ctx context.Context) error { - builder, err := internal.New(ctx) + builder, err := builder.New(ctx) if err != nil { return err } diff --git a/main.go b/main.go new file mode 100644 index 0000000..ec9c42d --- /dev/null +++ b/main.go @@ -0,0 +1,13 @@ +package main + +import ( + "log" + + "git.front.kjuulh.io/kjuulh/dagger-go/pkg/cli" +) + +func main() { + if err := cli.NewCli().Execute(); err != nil { + log.Fatal(err) + } +} diff --git a/internal/builder.go b/pkg/builder/builder.go similarity index 95% rename from internal/builder.go rename to pkg/builder/builder.go index 741e683..0405896 100644 --- a/internal/builder.go +++ b/pkg/builder/builder.go @@ -1,4 +1,4 @@ -package internal +package builder import ( "context" diff --git a/pkg/cli/build.go b/pkg/cli/build.go new file mode 100644 index 0000000..1bb55b1 --- /dev/null +++ b/pkg/cli/build.go @@ -0,0 +1,15 @@ +package cli + +import ( + "github.com/spf13/cobra" +) + +func Build() *cobra.Command { + cmd := &cobra.Command{ + Use: "build", + } + + cmd.AddCommand(BuildGolangBin()) + + return cmd +} diff --git a/pkg/cli/build_golang_bin.go b/pkg/cli/build_golang_bin.go new file mode 100644 index 0000000..efe2bad --- /dev/null +++ b/pkg/cli/build_golang_bin.go @@ -0,0 +1,45 @@ +package cli + +import ( + "errors" + "fmt" + "os" + + "git.front.kjuulh.io/kjuulh/dagger-go/pkg/builder" + "git.front.kjuulh.io/kjuulh/dagger-go/pkg/pipelines" + "github.com/spf13/cobra" +) + +func BuildGolangBin() *cobra.Command { + cmd := &cobra.Command{ + Use: "golangbin", + RunE: func(cmd *cobra.Command, args []string) error { + repoName := os.Getenv("DRONE_REPO_NAME") + if repoName == "" { + return errors.New("could not find DRONE_REPO_NAME") + } + imageTag := fmt.Sprintf("harbor.front.kjuulh.io/library/%s", repoName) + + ctx := cmd.Context() + + builder, err := builder.New(ctx) + if err != nil { + return err + } + defer builder.CleanUp() + + return pipelines. + New(builder). + WithGolangBin(&pipelines.GolangBinOpts{ + DockerImageOpt: &pipelines.DockerImageOpt{ + ImageName: imageTag, + }, + BuildPath: "main.go", + BinName: "main", + }). + Execute(ctx) + }, + } + + return cmd +} diff --git a/pkg/cli/cli.go b/pkg/cli/cli.go deleted file mode 100644 index 3c595c5..0000000 --- a/pkg/cli/cli.go +++ /dev/null @@ -1,55 +0,0 @@ -package cli - -import ( - "errors" - "fmt" - "log" - "os" - - "git.front.kjuulh.io/kjuulh/dagger-go/internal" - "git.front.kjuulh.io/kjuulh/dagger-go/pkg/pipelines" - "github.com/spf13/cobra" -) - -func Build(mainGoPath string, imageTag string) *cobra.Command { - cmd := &cobra.Command{ - Use: "build", - RunE: func(cmd *cobra.Command, args []string) error { - if err := cmd.ParseFlags(args); err != nil { - return err - } - - if imageTag == "" { - repoName := os.Getenv("DRONE_REPO_NAME") - if repoName == "" { - return errors.New("could not find DRONE_REPO_NAME") - } - imageTag = fmt.Sprintf("harbor.front.kjuulh.io/library/%s", repoName) - } - - ctx := cmd.Context() - - log.Printf("Building image: %s\n", imageTag) - - builder, err := internal.New(ctx) - if err != nil { - return err - } - defer builder.CleanUp() - - return pipelines. - New(builder). - WithGolangBin(&pipelines.GolangBinOpts{ - DockerImageOpt: &pipelines.DockerImageOpt{ - ImageName: "golang-bin", - }, - BuildPath: "example/golang-bin/main.go", - BinName: "golang-bin", - }). - Execute(ctx) - - }, - } - - return cmd -} diff --git a/pkg/cli/root.go b/pkg/cli/root.go new file mode 100644 index 0000000..78f9540 --- /dev/null +++ b/pkg/cli/root.go @@ -0,0 +1,13 @@ +package cli + +import "github.com/spf13/cobra" + +func NewCli() *cobra.Command { + cmd := &cobra.Command{ + Use: "dagger", + } + + cmd.AddCommand(Build()) + + return cmd +} diff --git a/pkg/pipelines/default.go b/pkg/pipelines/default.go index 9fad131..708e2e5 100644 --- a/pkg/pipelines/default.go +++ b/pkg/pipelines/default.go @@ -1,13 +1,12 @@ package pipelines import ( - "context" "log" "git.front.kjuulh.io/kjuulh/byg" ) -func (p *Pipeline) WithDefault() error { +func (p *Pipeline) WithDefault() *byg.Builder { return byg. New(). Step( @@ -17,7 +16,5 @@ func (p *Pipeline) WithDefault() error { log.Println("Hello, world!") return nil }, - }). - Execute(context.Background()) - + }) } diff --git a/pkg/pipelines/pipeline.go b/pkg/pipelines/pipeline.go index 7c7727c..55bcfc2 100644 --- a/pkg/pipelines/pipeline.go +++ b/pkg/pipelines/pipeline.go @@ -4,16 +4,16 @@ import ( "context" "git.front.kjuulh.io/kjuulh/byg" - "git.front.kjuulh.io/kjuulh/dagger-go/internal" + "git.front.kjuulh.io/kjuulh/dagger-go/pkg/builder" "golang.org/x/sync/errgroup" ) type Pipeline struct { - builder *internal.Builder + builder *builder.Builder pipelines []*byg.Builder } -func New(builder *internal.Builder) *Pipeline { +func New(builder *builder.Builder) *Pipeline { return &Pipeline{builder: builder} }