diff --git a/conmon/Makefile b/conmon/Makefile index b75605d9..7dc59c56 100644 --- a/conmon/Makefile +++ b/conmon/Makefile @@ -1,8 +1,13 @@ +include ../Makefile.inc + src = $(wildcard *.c) obj = $(src:.c=.o) override LIBS += $(shell pkg-config --libs glib-2.0) -override CFLAGS += -std=c99 -Os -Wall -Wextra $(shell pkg-config --cflags glib-2.0) + +VERSION = $(shell sed -n -e 's/^const Version = "\([^"]*\)"/\1/p' ../version/version.go) + +override CFLAGS += -std=c99 -Os -Wall -Wextra $(shell pkg-config --cflags glib-2.0) -DVERSION=\"$(VERSION)\" -DGIT_COMMIT=\"$(GIT_COMMIT)\" conmon: $(obj) $(CC) -o ../bin/$@ $^ $(CFLAGS) $(LIBS) diff --git a/conmon/conmon.c b/conmon/conmon.c index 663889ab..31b0d63a 100644 --- a/conmon/conmon.c +++ b/conmon/conmon.c @@ -97,6 +97,7 @@ static inline void strv_cleanup(char ***strv) #define DEFAULT_SOCKET_PATH "/var/lib/crio" +static bool opt_version = false; static bool opt_terminal = false; static bool opt_stdin = false; static bool opt_leave_stdin_open = false; @@ -135,6 +136,7 @@ static GOptionEntry opt_entries[] = { "timeout", 'T', 0, G_OPTION_ARG_INT, &opt_timeout, "Timeout in seconds", NULL }, { "log-size-max", 0, 0, G_OPTION_ARG_INT64, &opt_log_size_max, "Maximum size of log file", NULL }, { "socket-dir-path", 0, 0, G_OPTION_ARG_STRING, &opt_socket_path, "Location of container attach sockets", NULL }, + { "version", 0, 0, G_OPTION_ARG_NONE, &opt_version, "Print the version and exit", NULL }, { NULL } }; @@ -1119,6 +1121,10 @@ int main(int argc, char *argv[]) g_print("option parsing failed: %s\n", error->message); exit(1); } + if (opt_version) { + g_print("conmon version " VERSION "\ncommit: " GIT_COMMIT "\n"); + exit(0); + } if (opt_cid == NULL) nexit("Container ID not provided. Use --cid");