diff options
author | Tim Schlueter <schlueter.tim@linux.com> | 2018-02-14 01:28:24 -0800 |
---|---|---|
committer | Tim Schlueter <schlueter.tim@linux.com> | 2018-05-26 14:32:30 -0700 |
commit | a5d94ce0a883dd2be3ee227772213097fed3ffc4 (patch) | |
tree | 2bae827568b3cd9d1682e4a65b5562f7cd5f2780 | |
parent | 62e4df2a38081f62fd1bd657459b7ffb2d4f522c (diff) |
Added 'version' command to print when the bcachefs tool was built
-rw-r--r-- | Makefile | 13 | ||||
-rw-r--r-- | bcachefs.8 | 14 | ||||
-rw-r--r-- | bcachefs.c | 7 | ||||
-rw-r--r-- | cmd_version.c | 9 | ||||
-rw-r--r-- | cmds.h | 2 |
5 files changed, 42 insertions, 3 deletions
@@ -13,9 +13,12 @@ CFLAGS+=-std=gnu89 -O2 -g -MMD -Wall \ -DNO_BCACHEFS_CHARDEV \ -DNO_BCACHEFS_FS \ -DNO_BCACHEFS_SYSFS \ + -DVERSION_STRING='"$(VERSION)"' \ $(EXTRA_CFLAGS) LDFLAGS+=$(CFLAGS) +VERSION?=$(shell git describe --long --dirty 2>/dev/null || echo 0.1-nogit) + CC_VERSION=$(shell $(CC) -v 2>&1|grep -E '(gcc|clang) version') ifneq (,$(findstring gcc,$(CC_VERSION))) @@ -56,6 +59,16 @@ DEPS=$(SRCS:.c=.d) OBJS=$(SRCS:.c=.o) bcachefs: $(OBJS) +# If the version string differs from the last build, update the last version +ifneq ($(VERSION),$(shell cat .version 2>/dev/null)) +.PHONY: .version +endif +.version: + echo '$(VERSION)' > $@ + +# Rebuild the 'version' command any time the version string changes +cmd_version.o : .version + .PHONY: install install: bcachefs mkdir -p $(DESTDIR)$(ROOT_SBINDIR) @@ -1,5 +1,5 @@ -.Dd February 9, 2018 -.Dt BCACHEFS 8 +.Dd May 26, 2018 +.Dt BCACHEFS 8 SMM .Os .Sh NAME .Nm bcachefs @@ -87,6 +87,11 @@ Dump filesystem metadata to a qcow2 image .It Ic list List filesystem metadata in textual form .El +.Ss Miscellaneous commands +.Bl -tag -width 18n -compact +.It Ic version +Display the version of the invoked bcachefs tool +.El .Sh Superblock commands .Bl -tag -width Ds .It Nm Ic format Oo Ar options Oc Ar devices\ ... @@ -310,5 +315,10 @@ Verbose mode List mode .El .El +.Sh Miscellaneous commands +.Bl -tag -width Ds +.It Nm Ic version +Display the version of the invoked bcachefs tool +.El .Sh EXIT STATUS .Ex -std @@ -70,7 +70,10 @@ static void usage(void) "Debug:\n" "These commands work on offline, unmounted filesystems\n" " dump Dump filesystem metadata to a qcow2 image\n" - " list List filesystem metadata in textual form\n"); + " list List filesystem metadata in textual form\n" + "\n" + "Miscellaneous:\n" + " version Display the version of the invoked bcachefs tool\n"); } static char *full_cmd; @@ -144,6 +147,8 @@ int main(int argc, char *argv[]) char *cmd = pop_cmd(&argc, argv); + if (!strcmp(cmd, "version")) + return cmd_version(argc, argv); if (!strcmp(cmd, "format")) return cmd_format(argc, argv); if (!strcmp(cmd, "show-super")) diff --git a/cmd_version.c b/cmd_version.c new file mode 100644 index 00000000..3fb4b6e2 --- /dev/null +++ b/cmd_version.c @@ -0,0 +1,9 @@ +#include <stdio.h> + +#include "cmds.h" + +int cmd_version(int argc, char *argv[]) +{ + printf("bcachefs tool version %s\n", VERSION_STRING); + return 0; +} @@ -43,4 +43,6 @@ int cmd_list(int argc, char *argv[]); int cmd_migrate(int argc, char *argv[]); int cmd_migrate_superblock(int argc, char *argv[]); +int cmd_version(int argc, char *argv[]); + #endif /* _CMDS_H */ |