expand the tweet size, it was only taking 100 chars
[gregoa/bti.git] / bti.c
diff --git a/bti.c b/bti.c
index 7baf337..c9b4880 100644 (file)
--- a/bti.c
+++ b/bti.c
@@ -44,7 +44,7 @@ struct session {
        char *password;
        char *account;
        char *tweet;
-       int clean;
+       int bash;
 };
 
 struct bti_curl_buffer {
@@ -61,7 +61,7 @@ static void display_help(void)
        fprintf(stdout, "options are:\n");
        fprintf(stdout, "  --account accountname\n");
        fprintf(stdout, "  --password password\n");
-       fprintf(stdout, "  --clean\n");
+       fprintf(stdout, "  --bash\n");
        fprintf(stdout, "  --debug\n");
        fprintf(stdout, "  --version\n");
        fprintf(stdout, "  --help\n");
@@ -77,11 +77,11 @@ static char *get_string_from_stdin(void)
        char *temp;
        char *string;
 
-       string = zalloc(100);
+       string = zalloc(1000);
        if (!string)
                return NULL;
 
-       if (!fgets(string, 99, stdin))
+       if (!fgets(string, 999, stdin))
                return NULL;
        temp = strchr(string, '\n');
        *temp = '\0';
@@ -219,8 +219,8 @@ static int send_tweet(struct session *session)
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_callback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, curl_buf);
        res = curl_easy_perform(curl);
-       if (res) {
-               printf("error(%d) trying to send tweet\n", res);
+       if (res && !session->bash) {
+               fprintf(stderr, "error(%d) trying to send tweet\n", res);
                return -EINVAL;
        }
 
@@ -299,7 +299,7 @@ int main(int argc, char *argv[], char *envp[])
                { "account", 1, NULL, 'a' },
                { "password", 1, NULL, 'p' },
                { "help", 0, NULL, 'h' },
-               { "clean", 0, NULL, 'c' },
+               { "bash", 0, NULL, 'b' },
                { "version", 0, NULL, 'v' },
                { }
        };
@@ -308,10 +308,11 @@ int main(int argc, char *argv[], char *envp[])
        char *tweet;
        int retval;
        int option;
+#if 0
        char *home = getenv("HOME");
        char *pwd = getenv("PWD");
        char *dir;
-
+#endif
        session = session_alloc();
        if (!session) {
                fprintf(stderr, "no more memory...\n");
@@ -342,8 +343,8 @@ int main(int argc, char *argv[], char *envp[])
                        session->password = strdup(optarg);
                        dbg("password = %s\n", session->password);
                        break;
-               case 'c':
-                       session->clean = 1;
+               case 'b':
+                       session->bash= 1;
                        break;
                case 'h':
                        display_help();
@@ -366,7 +367,8 @@ int main(int argc, char *argv[], char *envp[])
                fprintf(stdout, "Enter twitter password: ");
                session->password = get_string_from_stdin();
        }
-
+#if 0
+       /* get the current working directory basename */
        if (strcmp(pwd, home) == 0)
                dir = "~";
        else {
@@ -376,20 +378,23 @@ int main(int argc, char *argv[], char *envp[])
                else
                        dir = "?";
        }
-
-       /* Add the "PWD $ " to the start of the tweet to show it is
-        * coming from a shell unless --clean is specified. */
+#endif
        tweet = get_string_from_stdin();
        if (strlen(tweet) == 0) {
                dbg("no tweet?\n");
                return -1;
        }
 
-       session->tweet = zalloc(strlen(tweet) + strlen(dir) + 10);
-       if (session->clean)
-               sprintf(session->tweet, "%s", tweet);
+//     session->tweet = zalloc(strlen(tweet) + strlen(dir) + 10);
+       session->tweet = zalloc(strlen(tweet) + 10);
+
+       /* if --bash is specified, add the "PWD $ " to
+        * the start of the tweet. */
+       if (session->bash)
+//             sprintf(session->tweet, "%s $ %s", dir, tweet);
+               sprintf(session->tweet, "$ %s", tweet);
        else
-               sprintf(session->tweet, "%s $ %s", dir, tweet);
+               sprintf(session->tweet, "%s", tweet);
        free(tweet);
 
        dbg("account = %s\n", session->account);
@@ -399,14 +404,16 @@ int main(int argc, char *argv[], char *envp[])
        /* fork ourself so that the main shell can get on
         * with it's life as we try to connect and handle everything
         */
-       child = fork();
-       if (child) {
-               dbg("child is %d\n", child);
-               exit(0);
+       if (session->bash) {
+               child = fork();
+                       if (child) {
+                       dbg("child is %d\n", child);
+                       exit(0);
+               }
        }
 
        retval = send_tweet(session);
-       if (retval) {
+       if (retval && !session->bash) {
                fprintf(stderr, "tweet failed\n");
                return -1;
        }