Carl D. Worth
Copyright (C) 2001 University of Southern California
+ Copyright (C) 2008 OpenMoko Inc
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
#include "file_util.h"
#include "str_util.h"
+
+int
+curl_progress_func (void* data,
+ double t, /* dltotal */
+ double d, /* dlnow */
+ double ultotal,
+ double ulnow)
+{
+ int i;
+ int p = d*100/t;
+ printf ("\r%3d%% |", p);
+ for (i = 1; i < 73; i++)
+ {
+ if (i <= p)
+ printf ("=");
+ else
+ printf ("-");
+ }
+ printf ("|");
+ fflush(stdout);
+ return 0;
+}
+
int ipkg_download(ipkg_conf_t *conf, const char *src, const char *dest_file_name)
{
int err = 0;
CURL *curl;
CURLcode res;
FILE * file = fopen (tmp_file_location, "w");
-
+
curl = curl_easy_init ();
if (curl)
{
curl_easy_setopt (curl, CURLOPT_URL, src);
curl_easy_setopt (curl, CURLOPT_WRITEDATA, file);
+ curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0);
+ curl_easy_setopt (curl, CURLOPT_PROGRESSFUNCTION, curl_progress_func);
res = curl_easy_perform (curl);
curl_easy_cleanup (curl);
fclose (file);
else
return -1;
+ printf ("\n");
+
err = file_move(tmp_file_location, dest_file_name);
free(tmp_file_location);