diff options
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | src/main.cpp | 10 | ||||
| -rw-r--r-- | src/options.cpp | 8 | ||||
| -rw-r--r-- | src/options.h | 1 | ||||
| -rw-r--r-- | tests/009-version_option.sh | 9 |
5 files changed, 30 insertions, 0 deletions
@@ -16,6 +16,8 @@ utility. > diff-dd help +> diff-dd version + > diff-dd backup [-B BUFFER_SIZE] -i INFILE -b BASEFILE -o OUTFILE > diff-dd restore [-B BUFFER_SIZE] -d DIFFFILE -o OUTFILE diff --git a/src/main.cpp b/src/main.cpp index 8f6dac5..9b74c08 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -29,14 +29,24 @@ #include "options.h" #include "restore.h" +#include "program_info.h" + #include <iostream> +void +print_version() +{ + std::cout << PROGRAM_NAME_STR << " " << PROGRAM_VERSION_STR << std::endl; +} + int main(int argc, char **argv) { try { if (OptionParser::isHelp(argc, argv)) { OptionParser::printUsage(); + } else if (OptionParser::isVersion(argc, argv)) { + print_version(); } else if (OptionParser::isBackup(argc, argv)) { backup(OptionParser::parseBackup(argc, argv)); } else if (OptionParser::isRestore(argc, argv)) { diff --git a/src/options.cpp b/src/options.cpp index c44fd06..a5912b6 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -83,6 +83,8 @@ OptionParser::printUsage() std::cout << " Or: " << PROGRAM_NAME_STR << " restore"; std::cout << "[-B BUFFER_SIZE] -d DIFFFILE -o OUTFILE" << std::endl; + std::cout << " Or: " << PROGRAM_NAME_STR << " version" << std::endl; + std::cout << " Or: " << PROGRAM_NAME_STR << " help" << std::endl; } @@ -93,6 +95,12 @@ OptionParser::isHelp(int argc, char **argv) } bool +OptionParser::isVersion(int argc, char **argv) +{ + return isOperation(argc, argv, "version"); +} + +bool OptionParser::isBackup(int argc, char **argv) { return isOperation(argc, argv, "backup"); diff --git a/src/options.h b/src/options.h index 80cb8f8..ba7e7ac 100644 --- a/src/options.h +++ b/src/options.h @@ -90,6 +90,7 @@ class OptionParser public: static void printUsage(); static bool isHelp(int argc, char **argv); + static bool isVersion(int argc, char **argv); static bool isBackup(int argc, char **argv); static bool isRestore(int argc, char **argv); ; diff --git a/tests/009-version_option.sh b/tests/009-version_option.sh new file mode 100644 index 0000000..2dc32f5 --- /dev/null +++ b/tests/009-version_option.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +source ./assert.sh + +PROGRAM_EXEC="$1" + +assert "diff-dd 3.0.0-prealpha" "" 0 $PROGRAM_EXEC version + +exit 0 |
