mirror of
https://github.com/Zygo/bees.git
synced 2025-05-17 21:35:45 +02: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:
parent
bbaf55b2b0
commit
e654e29f45
3
src/.gitignore
vendored
3
src/.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
|
*.new.c
|
||||||
|
bees-usage.c
|
||||||
bees-version.[ch]
|
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
|
echo "const char *BEES_VERSION = \"$(BEES_VERSION)\";" > bees-version.new.c
|
||||||
mv -f bees-version.new.c bees-version.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:
|
.depends:
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
|
||||||
@ -41,10 +45,9 @@ $(BEES_OBJS) fiemap.o fiewalk.o: %.o: %.cc
|
|||||||
$(PROGRAMS): ../bin/%: %.o
|
$(PROGRAMS): ../bin/%: %.o
|
||||||
$(CXX) $(BEES_CXXFLAGS) $(BEES_LDFLAGS) -o $@ $< $(LIBS)
|
$(CXX) $(BEES_CXXFLAGS) $(BEES_LDFLAGS) -o $@ $< $(LIBS)
|
||||||
|
|
||||||
bees-version.o: %.o: %.c
|
$(PROGRAMS): ../lib/libcrucible.a
|
||||||
$(CC) $(BEES_CFLAGS) -o $@ -c $<
|
|
||||||
|
|
||||||
$(BEES): $(BEES_OBJS) bees-version.o
|
$(BEES): $(BEES_OBJS) bees-version.o bees-usage.o
|
||||||
$(CXX) $(BEES_CXXFLAGS) $(BEES_LDFLAGS) -o $@ $^ $(LIBS)
|
$(CXX) $(BEES_CXXFLAGS) $(BEES_LDFLAGS) -o $@ $^ $(LIBS)
|
||||||
|
|
||||||
clean:
|
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 <cctype>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
#include <cstdio>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@ -35,44 +36,7 @@ int bees_log_level = 8;
|
|||||||
void
|
void
|
||||||
do_cmd_help(char *argv[])
|
do_cmd_help(char *argv[])
|
||||||
{
|
{
|
||||||
// 80col 01234567890123456789012345678901234567890123456789012345678901234567890123456789
|
fprintf(stderr, BEES_USAGE, argv[0]);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// tracing ----------------------------------------
|
// tracing ----------------------------------------
|
||||||
|
@ -866,6 +866,7 @@ public:
|
|||||||
|
|
||||||
// And now, a giant pile of extern declarations
|
// And now, a giant pile of extern declarations
|
||||||
extern int bees_log_level;
|
extern int bees_log_level;
|
||||||
|
extern const char *BEES_USAGE;
|
||||||
extern const char *BEES_VERSION;
|
extern const char *BEES_VERSION;
|
||||||
string pretty(double d);
|
string pretty(double d);
|
||||||
void bees_sync(int fd);
|
void bees_sync(int fd);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user