From 00c25b772edae62965b1615125b057f5986d18c2 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Tue, 13 Apr 2004 16:22:59 +0000 Subject: add --only-update-db command line option git-svn-id: https://svn.musicpd.org/mpd/trunk@728 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- TODO | 8 +++----- src/main.c | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/TODO b/TODO index 485b975c6..0881fd08a 100644 --- a/TODO +++ b/TODO @@ -17,12 +17,10 @@ vice versa, this way you can do list album artists or list artist albums, this will make life easier when we add genre and other metadata -3) thourougly rewrite and check signal blocking and unblocking - -4) add a --update-only, like --only-create-db, only just for updating - -5) have children close all logging stuff, and redirect stdout and stderr to +3) have children close all logging stuff, and redirect stdout and stderr to /dev/null, and set error bits in the shared log for the parent process to check when it receives a SIGUSR1, and print logs and then reset values of error bits. (don't redirect children's stdout and stderr to /dev/null if mpd is run with --no-daemon) + +4) cleanup main() diff --git a/src/main.c b/src/main.c index 3ec0b6fd0..9133783e8 100644 --- a/src/main.c +++ b/src/main.c @@ -59,6 +59,7 @@ typedef struct _Options { int daemon; int createDB; int onlyCreateDB; + int onlyUpdateDB; } Options; void usage(char * argv[]) { @@ -74,6 +75,7 @@ void usage(char * argv[]) { ERROR(" --no-daemon don't detach from console\n"); ERROR(" --create-db force (re)creation database\n"); ERROR(" --only-create-db create database and exit\n"); + ERROR(" --only-update-db create database and exit\n"); ERROR(" --no-create-db don't create database\n"); ERROR(" --verbose verbose logging\n"); ERROR(" --version prints version information\n"); @@ -94,6 +96,7 @@ void parseOptions(int argc, char ** argv, Options * options) { options->daemon = 1; options->createDB = 0; options->onlyCreateDB = 0; + options->onlyUpdateDB = 0; options->dbFile = NULL; if(argc>1) { @@ -116,6 +119,10 @@ void parseOptions(int argc, char ** argv, Options * options) { options->onlyCreateDB = 1; argcLeft--; } + else if(strcmp(argv[i],"--only-update-db")==0) { + options->onlyUpdateDB = 1; + argcLeft--; + } else if(strcmp(argv[i],"--no-create-db")==0) { options->createDB = -1; argcLeft--; @@ -217,7 +224,9 @@ int main(int argc, char * argv[]) { return EXIT_FAILURE; } - if(!options.onlyCreateDB && (listenSocket = establish(port))<0) { + if(!options.onlyCreateDB && !options.onlyUpdateDB && + (listenSocket = establish(port))<0) + { ERROR("error binding port\n"); return EXIT_FAILURE; } @@ -361,6 +370,10 @@ int main(int argc, char * argv[]) { } if(options.onlyCreateDB) exit(EXIT_SUCCESS); } + if(options.onlyUpdateDB) { + if(updateMp3Directory(stderr)<0) exit(EXIT_FAILURE); + exit(EXIT_SUCCESS); + } initCommands(); initAudioDriver(); -- cgit v1.2.3