go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(version = "1.23.1")
go_sdk.nogo(nogo = "//build/analysis:nogo")

go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
go_deps.from_file(go_mod = "//:go.mod")

# All *direct* Go dependencies of the module have to be listed explicitly.
# This list can be automatically updated by running "bazel mod tidy".
use_repo(
    go_deps,
    "co_honnef_go_tools",
    "com_4d63_gocheckcompilerdirectives",
    "com_github_adrg_xdg",
    "com_github_cavaliergopher_cpio",
    "com_github_cenkalti_backoff_v4",
    "com_github_cockroachdb_cockroach_go_v2",
    "com_github_container_storage_interface_spec",
    "com_github_containerd_containerd_v2",
    "com_github_containernetworking_plugins",
    "com_github_coreos_go_semver",
    "com_github_corverroos_commentwrap",
    "com_github_diskfs_go_diskfs",
    "com_github_docker_distribution",
    "com_github_gdamore_tcell_v2",
    "com_github_go_delve_delve",
    "com_github_golang_migrate_migrate_v4",
    "com_github_golangci_gofmt",
    "com_github_google_cel_go",
    "com_github_google_certificate_transparency_go",
    "com_github_google_go_cmp",
    "com_github_google_go_tpm",
    "com_github_google_go_tpm_tools",
    "com_github_google_gopacket",
    "com_github_google_nftables",
    "com_github_google_uuid",
    "com_github_iancoleman_strcase",
    "com_github_improbable_eng_grpc_web",
    "com_github_insomniacslk_dhcp",
    "com_github_joho_godotenv",
    "com_github_kballard_go_shellquote",
    "com_github_klauspost_compress",
    "com_github_lib_pq",
    "com_github_mattn_go_shellwords",
    "com_github_mdlayher_arp",
    "com_github_mdlayher_ethernet",
    "com_github_mdlayher_ethtool",
    "com_github_mdlayher_genetlink",
    "com_github_mdlayher_kobject",
    "com_github_mdlayher_netlink",
    "com_github_mdlayher_packet",
    "com_github_miekg_dns",
    "com_github_mitchellh_go_wordwrap",
    "com_github_opencontainers_go_digest",
    "com_github_opencontainers_runc",
    "com_github_packethost_packngo",
    "com_github_pkg_errors",
    "com_github_pkg_sftp",
    "com_github_prometheus_client_golang",
    "com_github_prometheus_node_exporter",
    "com_github_rivo_uniseg",
    "com_github_rmohr_bazeldnf",
    "com_github_sbezverk_nfproxy",
    "com_github_schollz_progressbar_v3",
    "com_github_spf13_cobra",
    "com_github_spf13_pflag",
    "com_github_sqlc_dev_sqlc",
    "com_github_stretchr_testify",
    "com_github_vishvananda_netlink",
    "com_github_yalue_native_endian",
    "com_google_cloud_go_storage",
    "com_zx2c4_golang_wireguard_wgctrl",
    "dev_gvisor_gvisor",
    "io_etcd_go_etcd_api_v3",
    "io_etcd_go_etcd_client_pkg_v3",
    "io_etcd_go_etcd_client_v3",
    "io_etcd_go_etcd_server_v3",
    "io_etcd_go_etcd_tests_v3",
    "io_k8s_api",
    "io_k8s_apimachinery",
    "io_k8s_apiserver",
    "io_k8s_cli_runtime",
    "io_k8s_client_go",
    "io_k8s_component_base",
    "io_k8s_klog_v2",
    "io_k8s_kubectl",
    "io_k8s_kubelet",
    "io_k8s_kubernetes",
    "io_k8s_pod_security_admission",
    "io_k8s_utils",
    "org_go4_netipx",
    "org_golang_google_api",
    "org_golang_google_genproto_googleapis_api",
    "org_golang_google_grpc",
    "org_golang_google_protobuf",
    "org_golang_x_crypto",
    "org_golang_x_net",
    "org_golang_x_sync",
    "org_golang_x_sys",
    "org_golang_x_term",
    "org_golang_x_text",
    "org_golang_x_time",
    "org_golang_x_tools",
    "org_uber_go_multierr",
    "org_uber_go_zap",
)

# Instead of defining a gazelle/module override for every dependency, we have a
# big dict containing all of them.
OVERRIDES = {
    "github.com/containerd/containerd/v2": {
        "directives": [
            "gazelle:proto disable",
            "gazelle:build_tags no_aufs,no_btrfs,no_devmapper,no_zfs",
        ],
    },
    "github.com/containerd/cgroups/v3": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "github.com/containerd/nri": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "github.com/gogo/protobuf": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "github.com/google/cel-go": {
        "build_file_generation": "on",
        "directives": [
            "gazelle:go_naming_convention go_default_library",
        ],
    },
    "github.com/google/go-tpm-tools": {
        "directives": [
            "gazelle:proto file",
        ],
        "pre_patches": [
            "//third_party/com_github_google_go_tpm_tools:go-tpm-tools-fix-proto-paths.patch",
        ],
    },
    "github.com/googleapis/gax-go/v2": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "github.com/Microsoft/hcsshim": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "github.com/opencontainers/runc": {
        "directives": [
            "gazelle:build_tags seccomp",
        ],
        "patches": [
            "//third_party/com_github_opencontainers_runc:runc-add-cdeps.patch",
        ],
    },
    "github.com/google/cadvisor": {
        "directives": [
            "gazelle:proto disable_global",
        ],
        "pre_patches": [
            "//third_party/com_github_google_cadvisor:cadvisor-errdefs1.patch",
        ],
    },
    "github.com/sqlc-dev/sqlc": {
        "directives": [
            "gazelle:proto disable",
            "gazelle:build_tags nowasm",
        ],
    },
    "github.com/containerd/ttrpc": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "go.etcd.io/etcd/api/v3": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "go.etcd.io/etcd/raft/v3": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "go.etcd.io/etcd/server/v3": {
        "directives": [
            "gazelle:proto disable",
        ],
        "patches": [
            "//third_party/com_go_etcd_io_etcd_server_v3:etcd-fix-embed-close.patch",
            "//third_party/com_go_etcd_io_etcd_server_v3:etcd-fix-islearner-panic.patch",
        ],
    },
    "github.com/grpc-ecosystem/grpc-gateway": {
        # Force generation of new build files for this package, required due to changes in how gazelle handles @go_googleapis.
        "build_file_generation": "on",
        "directives": [
            "gazelle:exclude **/**_test.go",
            "gazelle:exclude examples",
            "gazelle:resolve go github.com/grpc-ecosystem/grpc-gateway/internal //internal",
            "gazelle:resolve go github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options //protoc-gen-swagger/options",
            "gazelle:proto disable_global",
        ],
    },
    "k8s.io/api": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "k8s.io/apiextensions-apiserver": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "k8s.io/apiserver": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "k8s.io/client-go": {
        "pre_patches": [
            "//third_party/com_k8s_io_client_go:k8s-fix-websocket-custom-dialer.patch",
        ],
    },
    "k8s.io/cri-api": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "k8s.io/kube-aggregator": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "k8s.io/kubelet": {
        "directives": [
            "gazelle:proto disable",
        ],
        "patches": [
            "//third_party/com_k8s_io_kubelet:kubelet-fix-path.patch",
        ],
    },
    "k8s.io/kubernetes": {
        "directives": [
            "gazelle:proto disable",
        ],
        "patches": [
            "//third_party/com_k8s_io_kubernetes:k8s-native-metrics.patch",
            "//third_party/com_k8s_io_kubernetes:k8s-removed-block-device-pseudo-locks.patch",
            "//third_party/com_k8s_io_kubernetes:k8s-add-pause-build-file.patch",
            "//third_party/com_k8s_io_kubernetes:k8s-reserve-metropolis-ports-import.patch",
        ],
        "pre_patches": [
            "//third_party/com_k8s_io_kubernetes:k8s-drop-legacy-log-path.patch",
            "//third_party/com_k8s_io_kubernetes:k8s-reserve-metropolis-ports.patch",
        ],
    },
    "k8s.io/metrics": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "google.golang.org/genproto/googleapis/api": {
        "directives": [
            "gazelle:proto disable_global",
        ],
    },
    "google.golang.org/genproto/googleapis/rpc": {
        "directives": [
            "gazelle:proto disable_global",
        ],
    },
    "google.golang.org/grpc": {
        "directives": [
            "gazelle:proto disable",
        ],
    },
    "github.com/pingcap/tidb/parser": {
        "build_file_generation": "on",
    },
    "golang.org/x/mod": {
        "build_extra_args": [
            "-go_naming_convention=import_alias",
            "-go_naming_convention_external=import_alias",
        ],
    },
    "golang.org/x/sync": {
        "build_extra_args": [
            "-go_naming_convention=import_alias",
            "-go_naming_convention_external=import_alias",
        ],
    },
    "github.com/containernetworking/cni": {
        "patches": [
            "//third_party/com_github_containernetworking_cni:cni-fix-cachepath.patch",
        ],
    },
    "github.com/containernetworking/plugins": {
        "patches": [
            "//third_party/com_github_containernetworking_plugins:cniplugins-add-linkgroup.patch",
        ],
    },
    "github.com/corverroos/commentwrap": {
        "patches": [
            "//third_party/com_github_corverroos_commentwrap:commentwrap-uri.patch",
        ],
    },
    "github.com/pganalyze/pg_query_go/v4": {
        "patches": [
            "//third_party/com_github_pganalyze_pg_query_go_v4:pganalyze-add-cdeps.patch",
        ],
    },
    "github.com/sbezverk/nfproxy": {
        "pre_patches": [
            "//third_party/com_github_sbezverk_nfproxy:nfproxy-adapt-to-k8s-1.28.patch",
            "//third_party/com_github_sbezverk_nfproxy:nfproxy-adapt-to-nftables-0.2.patch",
        ],
    },
    "github.com/google/nftables": {
        "pre_patches": [
            "//third_party/com_github_google_nftables:nftables-bigger-buffers.patch",
            "//third_party/com_github_google_nftables:nftables-dynamic-exprs.patch",
        ],
    },
    "k8s.io/kubectl": {
        "patches": [
            "//third_party/com_k8s_io_kubectl:kubectl-fix-embed.patch",
        ],
    },
    "github.com/seccomp/libseccomp-golang": {
        "patches": [
            "//third_party/com_github_seccomp_libseccomp_golang:libseccomp.patch",
        ],
    },
    "github.com/vishvananda/netlink": {
        "patches": [
            "//third_party/com_github_vishvananda_netlink:netlink-psample.patch",
        ],
    },
    "gvisor.dev/gvisor": {
        "patches": [
            "//third_party/com_gvisor_dev_gvisor:gvisor-fix-syslog.patch",
        ],
        "pre_patches": [
            "//third_party/com_gvisor_dev_gvisor:gvisor-containerd-compat.patch",
        ],
    },
    "go.etcd.io/etcd/tests/v3": {
        "patches": [
            "//third_party/com_go_etcd_io_etcd_tests_v3:etcd-integration-logging.patch",
        ],
    },
    "k8s.io/component-base": {
        "patches": [
            "//third_party/com_k8s_io_component_base:k8s-fix-metrics-data-race.patch",
        ],
    },
    "k8s.io/mount-utils": {
        "pre_patches": [
            "//third_party/com_k8s_io_mount_utils:k8s-native-mounter.patch",
        ],
    },
    "golang.org/x/tools": {
        "patches": [
            "//third_party/com_golang_org_x_tools:goimports-group-merging.patch",
        ],
    },
}

# MODULE.bazel doesn't support loops, but since we have lots of overrides,
# this is the more readable approach.
[
    [
        go_deps.gazelle_override(
            build_extra_args = overrides.get("build_extra_args") or [],
            build_file_generation = overrides.get("build_file_generation") or "auto",
            directives = overrides.get("directives") or [],
            path = path,
        ),
        go_deps.module_override(
            patch_strip = 1,
            patches = overrides.get("patches") or [],
            path = path,
            pre_patches = overrides.get("pre_patches") or [],
        ),
    ]
    for path, overrides in OVERRIDES.items()
]
