mirror of
				https://github.com/Zygo/bees.git
				synced 2025-11-04 04:00:36 +01:00 
			
		
		
		
	bees: move usage message out of source file and fix a few inaccuracies
It's a pain to read, edit, and format large blocks of text in C++ code, so rip the usage message out of bees.cc and put it in a plain text file. Use a minimal translator to convert it into a C string. While we're here, remove the multiple roots feature from the command line synopsis, as we don't really support it any more. Also clarify that "id 5" is "subvol id 5", and describe in one sentence what workaround-btrfs-send does. Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
		
							
								
								
									
										3
									
								
								src/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								src/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,2 +1,3 @@
 | 
			
		||||
*.new.c
 | 
			
		||||
bees-usage.c
 | 
			
		||||
bees-version.[ch]
 | 
			
		||||
bees-version.new.c
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,10 @@ bees-version.c: bees.h $(BEES_OBJS:.o=.cc) Makefile
 | 
			
		||||
	echo "const char *BEES_VERSION = \"$(BEES_VERSION)\";" > bees-version.new.c
 | 
			
		||||
	mv -f bees-version.new.c bees-version.c
 | 
			
		||||
 | 
			
		||||
bees-usage.c: bees-usage.txt Makefile
 | 
			
		||||
	(echo 'const char *BEES_USAGE = '; sed -r 's/^(.*)$$/"\1\\n"/' < bees-usage.txt; echo ';') > bees-usage.new.c
 | 
			
		||||
	mv -f bees-usage.new.c bees-usage.c
 | 
			
		||||
 | 
			
		||||
.depends:
 | 
			
		||||
	mkdir -p $@
 | 
			
		||||
 | 
			
		||||
@@ -41,10 +45,9 @@ $(BEES_OBJS) fiemap.o fiewalk.o: %.o: %.cc
 | 
			
		||||
$(PROGRAMS): ../bin/%: %.o
 | 
			
		||||
	$(CXX) $(BEES_CXXFLAGS) $(BEES_LDFLAGS) -o $@ $< $(LIBS)
 | 
			
		||||
 | 
			
		||||
bees-version.o: %.o: %.c
 | 
			
		||||
	$(CC) $(BEES_CFLAGS) -o $@ -c $<
 | 
			
		||||
$(PROGRAMS): ../lib/libcrucible.a
 | 
			
		||||
 | 
			
		||||
$(BEES): $(BEES_OBJS) bees-version.o
 | 
			
		||||
$(BEES): $(BEES_OBJS) bees-version.o bees-usage.o
 | 
			
		||||
	$(CXX) $(BEES_CXXFLAGS) $(BEES_LDFLAGS) -o $@ $^ $(LIBS)
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								src/bees-usage.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/bees-usage.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
Usage: %s [options] fs-root-path
 | 
			
		||||
Performs best-effort extent-same deduplication on btrfs.
 | 
			
		||||
 | 
			
		||||
fs-root-path MUST be the root of a btrfs filesystem tree (subvol id 5).
 | 
			
		||||
Other directories will be rejected.
 | 
			
		||||
 | 
			
		||||
Options:
 | 
			
		||||
    -h, --help            Show this help
 | 
			
		||||
 | 
			
		||||
Load management options:
 | 
			
		||||
    -c, --thread-count    Worker thread count (default CPU count * factor)
 | 
			
		||||
    -C, --thread-factor   Worker thread factor (default 1)
 | 
			
		||||
    -G, --thread-min      Minimum worker thread count (default 0)
 | 
			
		||||
    -g, --loadavg-target  Target load average for worker threads (default none)
 | 
			
		||||
 | 
			
		||||
Filesystem tree traversal options:
 | 
			
		||||
    -m, --scan-mode       Scanning mode (0..2, default 0)
 | 
			
		||||
 | 
			
		||||
Workarounds:
 | 
			
		||||
    -a, --workaround-btrfs-send    Workaround for btrfs send
 | 
			
		||||
                                   (ignore RO snapshots)
 | 
			
		||||
 | 
			
		||||
Logging options:
 | 
			
		||||
    -t, --timestamps      Show timestamps in log output (default)
 | 
			
		||||
    -T, --no-timestamps   Omit timestamps in log output
 | 
			
		||||
    -p, --absolute-paths  Show absolute paths (default)
 | 
			
		||||
    -P, --strip-paths     Strip $CWD from beginning of all paths in the log
 | 
			
		||||
    -v, --verbose         Set maximum log level (0..8, default 8)
 | 
			
		||||
 | 
			
		||||
Optional environment variables:
 | 
			
		||||
    BEESHOME    Path to hash table and configuration files
 | 
			
		||||
                (default is .beeshome/ in the root of the filesystem).
 | 
			
		||||
 | 
			
		||||
    BEESSTATUS  File to write status to (tmpfs recommended, e.g. /run).
 | 
			
		||||
                No status is written if this variable is unset.
 | 
			
		||||
							
								
								
									
										40
									
								
								src/bees.cc
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								src/bees.cc
									
									
									
									
									
								
							@@ -7,6 +7,7 @@
 | 
			
		||||
 | 
			
		||||
#include <cctype>
 | 
			
		||||
#include <cmath>
 | 
			
		||||
#include <cstdio>
 | 
			
		||||
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <memory>
 | 
			
		||||
@@ -35,44 +36,7 @@ int bees_log_level = 8;
 | 
			
		||||
void
 | 
			
		||||
do_cmd_help(char *argv[])
 | 
			
		||||
{
 | 
			
		||||
	// 80col 01234567890123456789012345678901234567890123456789012345678901234567890123456789
 | 
			
		||||
	cerr << "Usage: " << argv[0] << " [options] fs-root-path [fs-root-path-2...]\n"
 | 
			
		||||
		"Performs best-effort extent-same deduplication on btrfs.\n"
 | 
			
		||||
		"\n"
 | 
			
		||||
		"fs-root-path MUST be the root of a btrfs filesystem tree (id 5).\n"
 | 
			
		||||
		"Other directories will be rejected.\n"
 | 
			
		||||
		"\n"
 | 
			
		||||
		"Options:\n"
 | 
			
		||||
		"    -h, --help            Show this help\n"
 | 
			
		||||
		"\n"
 | 
			
		||||
		"Load management options:\n"
 | 
			
		||||
		"    -c, --thread-count    Worker thread count (default CPU count * factor)\n"
 | 
			
		||||
		"    -C, --thread-factor   Worker thread factor (default " << BEES_DEFAULT_THREAD_FACTOR << ")\n"
 | 
			
		||||
		"    -G, --thread-min      Minimum worker thread count (default 0)\n"
 | 
			
		||||
		"    -g, --loadavg-target  Target load average for worker threads (default none)\n"
 | 
			
		||||
		"\n"
 | 
			
		||||
		"Filesystem tree traversal options:\n"
 | 
			
		||||
		"    -m, --scan-mode       Scanning mode (0..2, default 0)\n"
 | 
			
		||||
		"\n"
 | 
			
		||||
		"Workarounds:\n"
 | 
			
		||||
		"    -a, --workaround-btrfs-send    Workaround for btrfs send\n"
 | 
			
		||||
		"\n"
 | 
			
		||||
		"Logging options:\n"
 | 
			
		||||
		"    -t, --timestamps      Show timestamps in log output (default)\n"
 | 
			
		||||
		"    -T, --no-timestamps   Omit timestamps in log output\n"
 | 
			
		||||
		"    -p, --absolute-paths  Show absolute paths (default)\n"
 | 
			
		||||
		"    -P, --strip-paths     Strip $CWD from beginning of all paths in the log\n"
 | 
			
		||||
		"    -v, --verbose         Set maximum log level (0..8, default 8)\n"
 | 
			
		||||
		"\n"
 | 
			
		||||
		"Optional environment variables:\n"
 | 
			
		||||
		"    BEESHOME    Path to hash table and configuration files\n"
 | 
			
		||||
		"                (default is .beeshome/ in the root of each filesystem).\n"
 | 
			
		||||
		"\n"
 | 
			
		||||
		"    BEESSTATUS  File to write status to (tmpfs recommended, e.g. /run).\n"
 | 
			
		||||
		"                No status is written if this variable is unset.\n"
 | 
			
		||||
		"\n"
 | 
			
		||||
	// 80col 01234567890123456789012345678901234567890123456789012345678901234567890123456789
 | 
			
		||||
	<< endl;
 | 
			
		||||
	fprintf(stderr, BEES_USAGE, argv[0]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// tracing ----------------------------------------
 | 
			
		||||
 
 | 
			
		||||
@@ -866,6 +866,7 @@ public:
 | 
			
		||||
 | 
			
		||||
// And now, a giant pile of extern declarations
 | 
			
		||||
extern int bees_log_level;
 | 
			
		||||
extern const char *BEES_USAGE;
 | 
			
		||||
extern const char *BEES_VERSION;
 | 
			
		||||
string pretty(double d);
 | 
			
		||||
void bees_sync(int fd);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user