send-email: add an auto option for transfer encoding
[gitweb.git] / http-fetch.c
index ffd0ad7e295d7341776bb7b6407602cdb2997ef3..a32ac118d90ca6141a72d31f47497116870f6803 100644 (file)
@@ -1,39 +1,29 @@
 #include "cache.h"
-#include "exec_cmd.h"
+#include "config.h"
+#include "exec-cmd.h"
+#include "http.h"
 #include "walker.h"
 
 static const char http_fetch_usage[] = "git http-fetch "
 "[-c] [-t] [-a] [-v] [--recover] [-w ref] [--stdin] commit-id url";
 
-int main(int argc, const char **argv)
+int cmd_main(int argc, const char **argv)
 {
-       const char *prefix;
        struct walker *walker;
        int commits_on_stdin = 0;
        int commits;
        const char **write_ref = NULL;
        char **commit_id;
-       const char *url;
-       char *rewritten_url = NULL;
+       char *url = NULL;
        int arg = 1;
        int rc = 0;
-       int get_tree = 0;
-       int get_history = 0;
-       int get_all = 0;
        int get_verbosely = 0;
        int get_recover = 0;
 
-       git_extract_argv0_path(argv[0]);
-
        while (arg < argc && argv[arg][0] == '-') {
                if (argv[arg][1] == 't') {
-                       get_tree = 1;
                } else if (argv[arg][1] == 'c') {
-                       get_history = 1;
                } else if (argv[arg][1] == 'a') {
-                       get_all = 1;
-                       get_tree = 1;
-                       get_history = 1;
                } else if (argv[arg][1] == 'v') {
                        get_verbosely = 1;
                } else if (argv[arg][1] == 'w') {
@@ -56,23 +46,16 @@ int main(int argc, const char **argv)
                commit_id = (char **) &argv[arg++];
                commits = 1;
        }
-       url = argv[arg];
 
-       prefix = setup_git_directory();
+       if (argv[arg])
+               str_end_url_with_slash(argv[arg], &url);
 
-       git_config(git_default_config, NULL);
+       setup_git_directory();
 
-       if (url && url[strlen(url)-1] != '/') {
-               rewritten_url = xmalloc(strlen(url)+2);
-               strcpy(rewritten_url, url);
-               strcat(rewritten_url, "/");
-               url = rewritten_url;
-       }
+       git_config(git_default_config, NULL);
 
-       walker = get_http_walker(url, NULL);
-       walker->get_tree = get_tree;
-       walker->get_history = get_history;
-       walker->get_all = get_all;
+       http_init(NULL, url, 0);
+       walker = get_http_walker(url);
        walker->get_verbosely = get_verbosely;
        walker->get_recover = get_recover;
 
@@ -89,8 +72,9 @@ int main(int argc, const char **argv)
        }
 
        walker_free(walker);
+       http_cleanup();
 
-       free(rewritten_url);
+       free(url);
 
        return rc;
 }