refactor kind cli package layout

This commit is contained in:
Benjamin Elder
2018-08-27 23:03:19 -07:00
parent af6f5438e0
commit 205d00cce9
16 changed files with 78 additions and 69 deletions

37
BUILD.bazel Normal file
View File

@@ -0,0 +1,37 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
go_library(
name = "go_default_library",
srcs = ["main.go"],
importpath = "k8s.io/test-infra/kind",
visibility = ["//visibility:private"],
deps = ["//kind/cmd/kind:go_default_library"],
)
go_binary(
name = "kind",
embed = [":go_default_library"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//kind/cmd/kind:all-srcs",
"//kind/hack:all-srcs",
"//kind/images:all-srcs",
"//kind/pkg/build:all-srcs",
"//kind/pkg/cluster:all-srcs",
"//kind/pkg/exec:all-srcs",
],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -18,7 +18,7 @@ For more details see [the design documentation](./docs/design.md).
## Building
You can build `kind` with `go install k8s.io/test-infra/kind/cmd/kind` or `bazel build //kind/cmd/kind`.
You can install `kind` with `go install k8s.io/test-infra/kind`.
## Usage

View File

@@ -1,17 +1,16 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["main.go"],
srcs = ["kind.go"],
importpath = "k8s.io/test-infra/kind/cmd/kind",
visibility = ["//visibility:private"],
deps = ["//kind/cmd/kind/cmd:go_default_library"],
)
go_binary(
name = "kind",
embed = [":go_default_library"],
visibility = ["//visibility:public"],
deps = [
"//kind/cmd/kind/build:go_default_library",
"//kind/cmd/kind/create:go_default_library",
"//kind/cmd/kind/delete:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
],
)
filegroup(
@@ -25,7 +24,9 @@ filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//kind/cmd/kind/cmd:all-srcs",
"//kind/cmd/kind/build:all-srcs",
"//kind/cmd/kind/create:all-srcs",
"//kind/cmd/kind/delete:all-srcs",
],
tags = ["automanaged"],
visibility = ["//visibility:public"],

View File

@@ -3,11 +3,11 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["build.go"],
importpath = "k8s.io/test-infra/kind/cmd/kind/cmd/build",
importpath = "k8s.io/test-infra/kind/cmd/kind/build",
visibility = ["//visibility:public"],
deps = [
"//kind/cmd/kind/cmd/build/base:go_default_library",
"//kind/cmd/kind/cmd/build/node:go_default_library",
"//kind/cmd/kind/build/base:go_default_library",
"//kind/cmd/kind/build/node:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
],
)
@@ -23,8 +23,8 @@ filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//kind/cmd/kind/cmd/build/base:all-srcs",
"//kind/cmd/kind/cmd/build/node:all-srcs",
"//kind/cmd/kind/build/base:all-srcs",
"//kind/cmd/kind/build/node:all-srcs",
],
tags = ["automanaged"],
visibility = ["//visibility:public"],

View File

@@ -3,7 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["base.go"],
importpath = "k8s.io/test-infra/kind/cmd/kind/cmd/build/base",
importpath = "k8s.io/test-infra/kind/cmd/kind/build/base",
visibility = ["//visibility:public"],
deps = [
"//kind/pkg/build:go_default_library",

View File

@@ -20,8 +20,8 @@ package build
import (
"github.com/spf13/cobra"
"k8s.io/test-infra/kind/cmd/kind/cmd/build/base"
"k8s.io/test-infra/kind/cmd/kind/cmd/build/node"
"k8s.io/test-infra/kind/cmd/kind/build/base"
"k8s.io/test-infra/kind/cmd/kind/build/node"
)
// NewCommand returns a new cobra.Command for building

View File

@@ -3,7 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["node.go"],
importpath = "k8s.io/test-infra/kind/cmd/kind/cmd/build/node",
importpath = "k8s.io/test-infra/kind/cmd/kind/build/node",
visibility = ["//visibility:public"],
deps = [
"//kind/pkg/build:go_default_library",

View File

@@ -1,33 +0,0 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["root.go"],
importpath = "k8s.io/test-infra/kind/cmd/kind/cmd",
visibility = ["//visibility:public"],
deps = [
"//kind/cmd/kind/cmd/build:go_default_library",
"//kind/cmd/kind/cmd/create:go_default_library",
"//kind/cmd/kind/cmd/delete:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//kind/cmd/kind/cmd/build:all-srcs",
"//kind/cmd/kind/cmd/create:all-srcs",
"//kind/cmd/kind/cmd/delete:all-srcs",
],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -3,7 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["create.go"],
importpath = "k8s.io/test-infra/kind/cmd/kind/cmd/create",
importpath = "k8s.io/test-infra/kind/cmd/kind/create",
visibility = ["//visibility:public"],
deps = [
"//kind/pkg/cluster:go_default_library",

View File

@@ -3,7 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["delete.go"],
importpath = "k8s.io/test-infra/kind/cmd/kind/cmd/delete",
importpath = "k8s.io/test-infra/kind/cmd/kind/delete",
visibility = ["//visibility:public"],
deps = [
"//kind/pkg/cluster:go_default_library",

View File

@@ -14,17 +14,19 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
// Package cmd implements the kidna cobra command CLI
package cmd
// Package kind implements the root kind cobra command, and the cli Main()
package kind
import (
"flag"
"fmt"
"os"
"github.com/spf13/cobra"
"k8s.io/test-infra/kind/cmd/kind/cmd/build"
"k8s.io/test-infra/kind/cmd/kind/cmd/create"
"k8s.io/test-infra/kind/cmd/kind/cmd/delete"
"k8s.io/test-infra/kind/cmd/kind/build"
"k8s.io/test-infra/kind/cmd/kind/create"
"k8s.io/test-infra/kind/cmd/kind/delete"
)
// NewCommand returns a new cobra.Command implementing the root command for kind
@@ -55,3 +57,11 @@ func Run() error {
// actually execute the cobra commands now...
return cmd.Execute()
}
// Main wraps Run, adding an Exit(1) on error
func Main() {
if err := Run(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}

View File

@@ -14,19 +14,13 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
// This package is a stub main wrapping cmd.Run()
// This package is a stub main wrapping kind.Main()
package main
import (
"fmt"
"os"
"k8s.io/test-infra/kind/cmd/kind/cmd"
"k8s.io/test-infra/kind/cmd/kind"
)
func main() {
if err := cmd.Run(); err != nil {
fmt.Println(err)
os.Exit(1)
}
kind.Main()
}