diff --git a/Makefile b/Makefile index d106b8903dff3..39b5abe30c103 100644 --- a/Makefile +++ b/Makefile @@ -534,12 +534,30 @@ otel-from-tree: # 2. Run `make otel-from-tree` (only need to run it once to remap go modules) # 3. You can now build contrib and it will use your local otel core changes. # 4. Before committing/pushing your contrib changes, undo by running `make otel-from-lib`. - $(MAKE) for-all CMD="$(GOCMD) mod edit -replace go.opentelemetry.io/collector=$(SRC_PARENT_DIR)/opentelemetry-collector" + @source $(MODULES) && \ + replace_args=""; \ + echo "# BEGIN otel-from-tree" >> "./cmd/otelcontribcol/builder-config.yaml"; \ + echo "# BEGIN otel-from-tree" >> "./cmd/oteltestbedcol/builder-config.yaml"; \ + for module in "$${beta_modules[@]}" "$${stable_modules[@]}"; do \ + subpath=$${module#go.opentelemetry.io/collector}; \ + if [ "$${subpath}" = "$${module}" ]; then subpath=""; fi; \ + replace_args="$${replace_args} -replace $${module}=$(SRC_PARENT_DIR)/opentelemetry-collector$${subpath}"; \ + echo " - $${module} => $(SRC_PARENT_DIR)/opentelemetry-collector$${subpath}" >> "./cmd/otelcontribcol/builder-config.yaml"; \ + echo " - $${module} => $(SRC_PARENT_DIR)/opentelemetry-collector$${subpath}" >> "./cmd/oteltestbedcol/builder-config.yaml"; \ + done; \ + $(MAKE) for-all CMD="$(GOCMD) mod edit $${replace_args}" .PHONY: otel-from-lib otel-from-lib: # Sets opentelemetry core to be not be pulled from local source tree. (Undoes otel-from-tree.) - $(MAKE) for-all CMD="$(GOCMD) mod edit -dropreplace go.opentelemetry.io/collector" + @source $(MODULES) && \ + dropreplace_args=""; \ + for module in "$${beta_modules[@]}" "$${stable_modules[@]}"; do \ + dropreplace_args="$${dropreplace_args} -dropreplace $${module}"; \ + done; \ + sed -i '' '/# BEGIN otel-from-tree/,$$d' "./cmd/otelcontribcol/builder-config.yaml"; \ + sed -i '' '/# BEGIN otel-from-tree/,$$d' "./cmd/oteltestbedcol/builder-config.yaml"; \ + $(MAKE) for-all CMD="$(GOCMD) mod edit $${dropreplace_args}" .PHONY: build-examples build-examples: