From fa1ce0c79c255ce558c2aab1fb7db2ee189413e7 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 23 Jan 2009 11:03:41 -0800 Subject: [PATCH] add --logfile option Now we only log to the logfile if the option is set. --- bti.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/bti.c b/bti.c index 8370b2e..e177187 100644 --- a/bti.c +++ b/bti.c @@ -54,6 +54,7 @@ struct session { char *proxy; char *time; char *homedir; + char *logfile; int bash; enum host host; }; @@ -74,6 +75,7 @@ static void display_help(void) fprintf(stdout, " --password password\n"); fprintf(stdout, " --proxy PROXY:PORT\n"); fprintf(stdout, " --host HOST\n"); + fprintf(stdout, " --logfile logfile\n"); fprintf(stdout, " --bash\n"); fprintf(stdout, " --debug\n"); fprintf(stdout, " --version\n"); @@ -273,6 +275,7 @@ static void parse_configfile(struct session *session) char *password = NULL; char *host = NULL; char *proxy = NULL; + char *logfile = NULL; char *file; /* config file is ~/.bti */ @@ -324,6 +327,11 @@ static void parse_configfile(struct session *session) c += 6; if (c[0] != '\0') proxy = strdup(c); + } else if (!strncasecmp(c, "logfile", 7) && + (c[7] == '=')) { + c += 8; + if (c[0] != '\0') + logfile = strdup(c); } } while (!feof(config_file)); @@ -343,6 +351,8 @@ static void parse_configfile(struct session *session) free(session->proxy); session->proxy = proxy; } + if (logfile) + session->logfile = logfile; /* Free buffer and close file. */ free(line); @@ -355,10 +365,14 @@ static void log_session(struct session *session, int retval) char *filename; char *host; - /* logfile is ~/.bti.log */ - filename = alloca(strlen(session->homedir) + 10); + /* Only log something if we have a log file set */ + if (!session->logfile) + return; - sprintf(filename, "%s/.bti.log", session->homedir); + filename = alloca(strlen(session->homedir) + + strlen(session->logfile) + 3); + + sprintf(filename, "%s/%s", session->homedir, session->logfile); log_file = fopen(filename, "a+"); if (log_file == NULL) @@ -391,6 +405,7 @@ int main(int argc, char *argv[], char *envp[]) { "password", 1, NULL, 'p' }, { "host", 1, NULL, 'H' }, { "proxy", 1, NULL, 'P' }, + { "logfile", 1, NULL, 'L' }, { "help", 0, NULL, 'h' }, { "bash", 0, NULL, 'b' }, { "version", 0, NULL, 'v' }, @@ -463,6 +478,12 @@ int main(int argc, char *argv[], char *envp[]) session->proxy = strdup(optarg); dbg("proxy = %s\n", session->proxy); break; + case 'L': + if (session->logfile) + free(session->logfile); + session->logfile = strdup(optarg); + dbg("logfile = %s\n", session->logfile); + break; case 'H': if (strcasecmp(optarg, "twitter") == 0) session->host = HOST_TWITTER; @@ -544,7 +565,7 @@ int main(int argc, char *argv[], char *envp[]) if (retval && !session->bash) fprintf(stderr, "tweet failed\n"); -// log_session(session, retval); + log_session(session, retval); exit: session_free(session); return retval;; -- 2.39.5