From cc686a769d8063aca8f54b5bfb0d15d73c653b48 Mon Sep 17 00:00:00 2001 From: Robin Richtsfeld Date: Wed, 31 Jan 2018 20:49:10 +0100 Subject: [PATCH] Add version output --- BUILD | 16 ++++++++++++++++ butteraugli/butteraugli_main.cc | 28 ++++++++++++++++++++++++---- version.sh | 11 +++++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) create mode 100755 version.sh diff --git a/BUILD b/BUILD index 5695064..f033099 100755 --- a/BUILD +++ b/BUILD @@ -1,3 +1,18 @@ +filegroup( + name = "git_files", + srcs = glob([".git/**"]), +) + +genrule( + name = "gen_version", + srcs = [ + ":git_files", + "version.sh" + ], + outs = ["version.txt"], + cmd = "./version.sh $@", +) + cc_library( name = "butteraugli_lib", srcs = [ @@ -21,4 +36,5 @@ cc_binary( "@jpeg_archive//:jpeg", "@png_archive//:png", ], + data = [":gen_version"], ) diff --git a/butteraugli/butteraugli_main.cc b/butteraugli/butteraugli_main.cc index 80c9510..0ee5274 100755 --- a/butteraugli/butteraugli_main.cc +++ b/butteraugli/butteraugli_main.cc @@ -358,13 +358,33 @@ void CreateHeatMapImage(const ImageF& distmap, double good_threshold, } } +char* ReadVersion(char* argv) { + FILE* file = fopen("version.txt", "r"); + char* buffer = new char[100]; + fread(buffer, 1, 100, file); + fclose(file); + return buffer; +} + // main() function, within butteraugli namespace for convenience. int Run(int argc, char* argv[]) { - if (argc != 3 && argc != 4) { + bool valid_syntax = false; + + if (argc == 2) { + if (strcmp(argv[1], "--version") == 0) { + fprintf(stdout, "%s version %s\n", argv[0], ReadVersion(argv[0])); + return 0; + } + } else if (argc == 3 || argc == 4) { + valid_syntax = true; + } + + if (!valid_syntax) { fprintf(stderr, - "Usage: %s {image1.(png|jpg|jpeg)} {image2.(png|jpg|jpeg)} " - "[heatmap.ppm]\n", - argv[0]); + "Usage:\n" + "%s {image1.(png|jpg|jpeg)} {image2.(png|jpg|jpeg)} [heatmap.ppm]\n" + "%s --version\n", + argv[0], argv[0]); return 1; } diff --git a/version.sh b/version.sh new file mode 100755 index 0000000..2eb54a9 --- /dev/null +++ b/version.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# .git must not be a symlink +mv .git .git2 +cp -Lr .git2 .git + +( +git rev-list --count HEAD +echo ' ('; git rev-parse HEAD +echo ')' +) | tr -d '\n' > $@