From aa2e8893e5097d019ee5311ced526a3aed95d840 Mon Sep 17 00:00:00 2001 From: Dan Fuhry Date: Mon, 19 Oct 2026 17:09:32 -0400 Subject: [PATCH] add rollouts generated package --- utils/rollout/rollouts/BUILD.bazel | 11 +++++++++++ utils/rollout/rollouts/generate.sh | 26 ++++++++++++++++++++++++++ utils/rollout/rollouts/rollouts.gen.go | 6 ++++++ utils/rollout/rollouts/types.go | 12 ++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 utils/rollout/rollouts/BUILD.bazel create mode 100755 utils/rollout/rollouts/generate.sh create mode 100644 utils/rollout/rollouts/rollouts.gen.go create mode 100644 utils/rollout/rollouts/types.go diff --git a/utils/rollout/rollouts/BUILD.bazel b/utils/rollout/rollouts/BUILD.bazel new file mode 100644 index 0000000..ada9fcb --- /dev/null +++ b/utils/rollout/rollouts/BUILD.bazel @@ -0,0 +1,11 @@ +load("//bazel:go.bzl", "go_multi_library") + +go_multi_library( + name = "rollouts", + srcs = [ + "rollouts.gen.go", + "types.go", + ], + importpath = "go.fuhry.dev/runtime/utils/rollout/rollouts", + visibility = ["//visibility:public"], +) diff --git a/utils/rollout/rollouts/generate.sh b/utils/rollout/rollouts/generate.sh new file mode 100755 index 0000000..eb42fff --- /dev/null +++ b/utils/rollout/rollouts/generate.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +set -euo pipefail + +declare -r scriptdir="$(cd "$(dirname "$0")"; pwd)" +declare -r repodir="$(cd "$scriptdir/../../.."; pwd)" +declare -r trunc="$(( ${#repodir} + 1 ))" + +echo -n > "$scriptdir/rollouts.gen.go" + +out() { + echo -e "$@" >> "$scriptdir/rollouts.gen.go" +} + +out "package rollouts" +out "" +out "var allRollouts = []string{" + +while read match; do + IFS=":" read f ro <<< "$match" + + out "\t// from ${f:$trunc}" + out "\t${ro:12}," +done < <(grep -roE --include="*.go" --exclude="*_test.go" --exclude="*.gen.go" --exclude="*.pb.go" 'rollout.New\("[a-z0-9_]+"' "$repodir") + +out "}" diff --git a/utils/rollout/rollouts/rollouts.gen.go b/utils/rollout/rollouts/rollouts.gen.go new file mode 100644 index 0000000..d1b0e8f --- /dev/null +++ b/utils/rollout/rollouts/rollouts.gen.go @@ -0,0 +1,6 @@ +package rollouts + +var allRollouts = []string{ + // from metrics/metricbus/mbclient/common.go + "metricbus_dbus_to_http", +} diff --git a/utils/rollout/rollouts/types.go b/utils/rollout/rollouts/types.go new file mode 100644 index 0000000..7261e22 --- /dev/null +++ b/utils/rollout/rollouts/types.go @@ -0,0 +1,12 @@ +package rollouts + +import "slices" + +//go:generate ./generate.sh + +func Rollouts() []string { + out := make([]string, len(allRollouts)) + copy(out, allRollouts) + slices.Sort(out) + return out +} -- 2.52.0