add --only-update-db command line option

git-svn-id: https://svn.musicpd.org/mpd/trunk@728 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
Warren Dukes 2004-04-13 16:22:59 +00:00
parent 43c2576934
commit 00c25b772e
2 changed files with 17 additions and 6 deletions

8
TODO
View File

@ -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()

View File

@ -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();