1
0
Fork 0
mirror of https://github.com/KingDuckZ/dindexer.git synced 2024-11-29 01:33:46 +00:00

Add --version switch to main program.

This commit is contained in:
King_DuckZ 2016-03-16 18:49:49 +01:00
parent 417459b806
commit ed30de44cf
3 changed files with 35 additions and 16 deletions

View file

@ -15,24 +15,12 @@
* along with "dindexer". If not, see <http://www.gnu.org/licenses/>.
*/
#include "builtin_feats.h"
#include <stdio.h>
#include "dindexerConfig.h"
void print_builtin_feats() {
#if VERSION_BETA
char beta_str[2] = "b";
#else
char beta_str[1] = "";
#endif
printf("%s v %d.%d.%d%s\nRev %s\n",
PROGRAM_NAME,
VERSION_MAJOR,
VERSION_MINOR,
VERSION_PATCH,
beta_str,
VERSION_GIT
);
print_version();
printf("CONFIG_FILE_PATH = \"%s\"\n", CONFIG_FILE_PATH);
printf("ACTIONS_SEARCH_PATH = \"%s\"\n", ACTIONS_SEARCH_PATH);
@ -49,3 +37,20 @@ void print_builtin_feats() {
#endif
printf("DB_OWNER_NAME = \"%s\"\n", DB_OWNER_NAME);
}
void print_version() {
#if VERSION_BETA
char beta_str[2] = "b";
#else
char beta_str[1] = "";
#endif
printf("%s v%d.%d.%d%s\nRev %s\n",
PROGRAM_NAME,
VERSION_MAJOR,
VERSION_MINOR,
VERSION_PATCH,
beta_str,
VERSION_GIT
);
}

View file

@ -19,5 +19,6 @@
#define id17B851C76AD54C8B9A2098323FC83038
void print_builtin_feats ( void );
void print_version ( void );
#endif

View file

@ -181,12 +181,14 @@ static void print_usage() {
printf("--help, -h - show this help\n");
printf("--builtin, -b - show build info\n");
printf("--printactions=[prefix] - print a complete-friendly list of available commands, filtered by an optional prefix\n");
printf("--version, -v - show %s's version and quit", PROGRAM_NAME);
}
static int manage_commandline (int parArgc, char* parArgv[], char** parActions, size_t parActionCount, int* parShouldQuit) {
int showbuiltin;
int showhelp;
int showactions_for_completion;
int showversion;
int option_index;
int getopt_retval;
FILE* streamout;
@ -204,15 +206,16 @@ static int manage_commandline (int parArgc, char* parArgv[], char** parActions,
{ "printactions", optional_argument, NULL, 'a' },
{ "builtin", no_argument, &showbuiltin, 1 },
{ "help", no_argument, &showhelp, 1 },
{ "version", no_argument, &showversion, 1 },
{ 0, 0, 0, 0 }
};
memset(&actions_print_context, 0, sizeof(actions_print_context));
option_index = 0;
showbuiltin = showhelp = showactions_for_completion = 0;
showversion = showbuiltin = showhelp = showactions_for_completion = 0;
*parShouldQuit = 0;
while (0 <= (getopt_retval = getopt_long(parArgc, parArgv, "bh", opts, &option_index))) {
while (0 <= (getopt_retval = getopt_long(parArgc, parArgv, "bhv", opts, &option_index))) {
switch (getopt_retval) {
case 'h':
showhelp = 1;
@ -226,6 +229,10 @@ static int manage_commandline (int parArgc, char* parArgv[], char** parActions,
case 'a':
showactions_for_completion = 1;
actions_print_context.prefix_filter = (optarg ? optarg : "");
break;
case 'v':
showversion = 1;
break;
}
option_index = 0;
}
@ -249,6 +256,7 @@ static int manage_commandline (int parArgc, char* parArgv[], char** parActions,
streamout = stdout;
retval = 0;
}
fprintf(streamout, "\n");
fprintf(streamout, "Available actions are:\n");
foreach_avail_action(&printf_stream, parActions, parActionCount, streamout);
return retval;
@ -258,6 +266,11 @@ static int manage_commandline (int parArgc, char* parArgv[], char** parActions,
print_builtin_feats();
return 0;
}
else if (showversion) {
*parShouldQuit = 1;
print_version();
return 0;
}
else if (showactions_for_completion) {
*parShouldQuit = 1;
actions_print_context.stream = stdout;