Skip to content

Commit 3e120c3

Browse files
committed
Start embedding a version number
1 parent cfddd86 commit 3e120c3

3 files changed

Lines changed: 37 additions & 1 deletion

File tree

bin/build.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,22 @@ if [ ! -d "${DIST_DIR}" ]; then
2020
fi
2121

2222
FILES=$(ls "${REPO_DIR}/cmd")
23+
LASTMOD=$(date -u +%Y-%m-%dT%H:%M:%SZ)
24+
COMMIT=$(git rev-parse --short HEAD)
25+
if [[ $(git diff --stat) != '' ]]; then
26+
COMMIT="${COMMIT}-dirty"
27+
fi
2328

2429
for f in $FILES; do
2530
if [ -f "${DIST_DIR}/${f}" ]; then
2631
echo "WARNING: file ${DIST_DIR}/${f} already exists"
2732
continue
2833
fi
2934
echo "INFO: compiling ${f} to dist directory"
30-
go build -o "${DIST_DIR}/${f}" "${REPO_DIR}/cmd/${f}"
35+
go build \
36+
-ldflags "-s -w -X github.com/FileFormatInfo/fftools/internal.LASTMOD=${LASTMOD} -X github.com/FileFormatInfo/fftools/internal.COMMIT=${COMMIT} -X github.com/FileFormatInfo/fftools/internal.BUILDER=build.sh" \
37+
-o "${DIST_DIR}/${f}" \
38+
"${REPO_DIR}/cmd/${f}"
3139
done
3240

3341
echo "INFO: complete at $(date -u +%Y-%m-%dT%H:%M:%SZ)"

cmd/uniwhat/uniwhat.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"log"
88
"os"
99

10+
"github.com/FileFormatInfo/fftools/internal"
1011
"github.com/spf13/pflag"
1112
"golang.org/x/text/unicode/runenames"
1213
)
@@ -18,9 +19,15 @@ func main() {
1819
var codepoint = pflag.Bool("codepoint", true, "Print the U+XXXX codepoint")
1920
var offset = pflag.Bool("offset", true, "Print the offset")
2021
var char = pflag.Bool("char", false, "Print the character itself")
22+
var version = pflag.Bool("version", false, "Print version information")
2123

2224
pflag.Parse()
2325

26+
if *version {
27+
internal.PrintVersion("uniwhat")
28+
return
29+
}
30+
2431
args := pflag.Args()
2532
if len(args) == 0 {
2633
args = []string{"-"}

internal/Version.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package internal
2+
3+
import (
4+
"fmt"
5+
"log/slog"
6+
)
7+
8+
var (
9+
BUILDER = "unknown"
10+
COMMIT = "(local)"
11+
LASTMOD = "(local)"
12+
VERSION = "internal"
13+
)
14+
15+
func PrintVersion(name string) {
16+
if LogLevel >= slog.LevelInfo {
17+
slog.Info("Version information", "name", name, "version", VERSION, "lastmod", LASTMOD, "commit", COMMIT, "builder", BUILDER)
18+
} else {
19+
fmt.Printf("%s version %s (built on %s from %s by %s)\n", name, VERSION, LASTMOD, COMMIT, BUILDER)
20+
}
21+
}

0 commit comments

Comments
 (0)