add --stdout and make --no-daemon by default output to log files

git-svn-id: https://svn.musicpd.org/mpd/trunk@1267 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
Warren Dukes 2004-05-31 23:49:38 +00:00
parent 1a5b04e4e8
commit 6a16e08f9a
2 changed files with 28 additions and 27 deletions

20
TODO
View File

@ -7,25 +7,15 @@
e) ensure URL's are all ASCII, and properly %'d! check rfc's
for legal characters
2) have --no-daemon still output to log files, and add option --no-log-files
2) ACK error codes
3) resampling audio for compatibility, and better gapless/crossfading
a) use resampling from oggenc (is it fast enough for realtime?)
3) cleanup main()
4) when writing combined interface for all decodes to use, be sure to add a
common function and abstrct dealing with DecoderControl * and put
cycleLogFiles in there, so we cycleLogFiles while decoding, not just when
decoding has stopped.
4) handle '\n' in filenames
5) ACK error codes
5) compute average replaygain to use for non-replaygain songs
6) cleanup main()
7) handle '\n' in filenames
8) compute average replaygain to use for non-replaygain songs
9) change default port to 6600
6) change default port to 6600
Post-1.0

View File

@ -60,6 +60,7 @@ typedef struct _Options {
char * usr;
char * dbFile;
int daemon;
int stdOutput;
int createDB;
int onlyCreateDB;
int onlyUpdateDB;
@ -76,6 +77,7 @@ void usage(char * argv[]) {
ERROR("options:\n");
ERROR(" --help this usage statement\n");
ERROR(" --no-daemon don't detach from console\n");
ERROR(" --stdout print msgs to stdout and stderr\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");
@ -116,6 +118,7 @@ void parseOptions(int argc, char ** argv, Options * options) {
options->usr = NULL;
options->daemon = 1;
options->stdOutput = 0;
options->createDB = 0;
options->onlyCreateDB = 0;
options->onlyUpdateDB = 0;
@ -133,6 +136,10 @@ void parseOptions(int argc, char ** argv, Options * options) {
options->daemon = 0;
argcLeft--;
}
else if(strcmp(argv[i],"--stdout")==0) {
options->stdOutput = 1;
argcLeft--;
}
else if(strcmp(argv[i],"--create-db")==0) {
options->createDB = 1;
argcLeft--;
@ -382,6 +389,22 @@ int main(int argc, char * argv[]) {
exit(EXIT_FAILURE);
}
fflush(NULL);
pid = fork();
if(pid>0) _exit(EXIT_SUCCESS);
else if(pid<0) {
ERROR("problems fork'ing for daemon!\n");
exit(EXIT_FAILURE);
}
}
if(options.stdOutput) {
fclose(out);
fclose(err);
}
else {
fflush(NULL);
if(dup2(fileno(out),STDOUT_FILENO)<0) {
myfprintf(err,"problems dup2 stdout : %s\n",
strerror(errno));
@ -395,18 +418,6 @@ int main(int argc, char * argv[]) {
}
myfprintfStdLogMode(out,err,options.logFile,options.errorFile);
fflush(NULL);
pid = fork();
if(pid>0) _exit(EXIT_SUCCESS);
else if(pid<0) {
ERROR("problems fork'ing for daemon!\n");
exit(EXIT_FAILURE);
}
}
else {
fclose(out);
fclose(err);
}
/* lets redirect stdin to dev null as a work around for libao bug */