Skip to content

Commit

Permalink
add step to auto generate versions.go in Makefile
Browse files Browse the repository at this point in the history
  • Loading branch information
kcarrasco-panw committed Aug 27, 2024
1 parent 6f8c7be commit ef9d707
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 54 deletions.
23 changes: 22 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,30 @@
MAKEFLAGS += --warn-undefined-variables
SHELL := /bin/bash -o pipefail

export PROJECT_BRANCH ?=$(shell git rev-parse --abbrev-ref HEAD)
export PROJECT_SHA ?= $(shell git rev-parse HEAD)
export GO111MODULE = on

default: lint test
define VERSIONS_FILE
package versions

// Various version information.
var (
ProjectVersion = "$(PROJECT_BRANCH)"
ProjectSha = "$(PROJECT_SHA)"
)

// Versions of the various libraries used by the project.
var ()
endef
export VERSIONS_FILE

default: versions lint test

versions:
@echo generating cmd/elegen/versions.go
@mkdir -p ./internal/versions
@echo "$$VERSIONS_FILE" > ./cmd/elegen/versions/versions.go

lint:
golangci-lint run \
Expand Down
50 changes: 50 additions & 0 deletions cmd/elegen/versions/utils.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
// Copyright 2019 Aporeto Inc.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package versions

import (
"encoding/json"
"fmt"

"go.uber.org/zap/zapcore"
)

// Fields returns a ready to dump zap.Fields containing all the versions used.
func Fields() []zapcore.Field {

return []zapcore.Field{}
}

// Map returns the version information as a map.
func Map() map[string]any {

return map[string]any{
"version": ProjectVersion,
"sha": ProjectSha[0:7],
"libs": map[string]string{},
}
}

// ToString returns the string version of versions
func ToString(prefix string) string {

buffer := fmt.Sprintf("%s%32s : %s\n", prefix, "ProjectVersion", ProjectVersion)
buffer += fmt.Sprintf("%s%32s : %s\n", prefix, "ProjectSha", ProjectSha[0:7])
buffer += fmt.Sprintf("%s%32s : %s\n", prefix, "Libraries", "")
return buffer
}

// JSON returns the version as a ready to send json data.
func JSON() ([]byte, error) {

return json.MarshalIndent(Map(), "", " ")
}
55 changes: 2 additions & 53 deletions cmd/elegen/versions/versions.go
Original file line number Diff line number Diff line change
@@ -1,61 +1,10 @@
// Copyright 2019 Aporeto Inc.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package versions

// This code is autogenerated by apolibver. Do not edit manually.

import (
"encoding/json"
"fmt"

"go.uber.org/zap/zapcore"
)

// Versions of the current project.
// Various version information.
var (
ProjectVersion = "master"
ProjectSha = "edcc353e7c61c4c3775380b37e04ca8ba747d13f"
ProjectSha = "6f8c7be6698cfa85da84aa8dcc1e4c2815a9c8c1"
)

// Versions of the various libraries used by the project.
var ()

// Fields returns a ready to dump zap.Fields containing all the versions used.
func Fields() []zapcore.Field {

return []zapcore.Field{}
}

// Map returns the version information as a map.
func Map() map[string]any {

return map[string]any{
"version": ProjectVersion,
"sha": ProjectSha[0:7],
"libs": map[string]string{},
}
}

// ToString returns the string version of versions
func ToString(prefix string) string {

buffer := fmt.Sprintf("%s%32s : %s\n", prefix, "ProjectVersion", ProjectVersion)
buffer += fmt.Sprintf("%s%32s : %s\n", prefix, "ProjectSha", ProjectSha[0:7])
buffer += fmt.Sprintf("%s%32s : %s\n", prefix, "Libraries", "")
return buffer
}

// JSON returns the version as a ready to send json data.
func JSON() ([]byte, error) {

return json.MarshalIndent(Map(), "", " ")
}

0 comments on commit ef9d707

Please sign in to comment.