1
0
mirror of https://github.com/moparisthebest/pacman synced 2024-11-16 14:25:21 -05:00

fetch_pkgurl: do not download a file if it's already in the current dir

This commit is contained in:
Aurelien Foret 2005-03-20 21:41:19 +00:00
parent 1b7b6e47a1
commit a65f6aef48

View File

@ -495,13 +495,8 @@ char *fetch_pkgurl(char *target)
{ {
char spath[PATH_MAX]; char spath[PATH_MAX];
char url[PATH_MAX]; char url[PATH_MAX];
server_t *server;
list_t *servers = NULL;
list_t *files = NULL;
char *host, *path, *fn; char *host, *path, *fn;
struct stat buf;
/* ORE
do not download the file if it exists in the current dir */
strncpy(url, target, PATH_MAX); strncpy(url, target, PATH_MAX);
host = strstr(url, "://"); host = strstr(url, "://");
@ -524,6 +519,15 @@ char *fetch_pkgurl(char *target)
strcpy(spath, "/"); strcpy(spath, "/");
} }
/* do not download the file if it exists in the current dir
*/
if(stat(fn, &buf) == 0) {
vprint(" %s is already in the current directory\n", fn);
} else {
server_t *server;
list_t *servers = NULL;
list_t *files = NULL;
server = (server_t *)malloc(sizeof(server_t)); server = (server_t *)malloc(sizeof(server_t));
if(server == NULL) { if(server == NULL) {
fprintf(stderr, "error: failed to allocate %d bytes\n", sizeof(server_t)); fprintf(stderr, "error: failed to allocate %d bytes\n", sizeof(server_t));
@ -539,11 +543,12 @@ char *fetch_pkgurl(char *target)
fprintf(stderr, "error: failed to download %s\n", target); fprintf(stderr, "error: failed to download %s\n", target);
return(NULL); return(NULL);
} }
FREELIST(servers);
files->data = NULL; files->data = NULL;
FREELIST(files); FREELIST(files);
FREELIST(servers);
}
/* return the target with the raw filename, no URL */ /* return the target with the raw filename, no URL */
return(strndup(fn, PATH_MAX)); return(strndup(fn, PATH_MAX));
} }