summaryrefslogtreecommitdiffstats
path: root/src/pacman/download.c
diff options
context:
space:
mode:
authorAurelien Foret <aurelien@archlinux.org>2005-03-20 15:17:34 +0100
committerAurelien Foret <aurelien@archlinux.org>2005-03-20 15:17:34 +0100
commit950839b557c3d65443010f26e42f328804b11ef4 (patch)
tree98124b23ea6e1abb66ee506d5c916337c1010147 /src/pacman/download.c
parent4744a2a764caec2d50405f58f025cb0e91a5d572 (diff)
downloadpacman-950839b557c3d65443010f26e42f328804b11ef4.tar.gz
pacman-950839b557c3d65443010f26e42f328804b11ef4.tar.xz
- added pmo_chomp support (from pacman 2.9.3)
- fixed a typo with pmo_proxyport usage
Diffstat (limited to 'src/pacman/download.c')
-rw-r--r--src/pacman/download.c36
1 files changed, 34 insertions, 2 deletions
diff --git a/src/pacman/download.c b/src/pacman/download.c
index 7727473b..efd40fbf 100644
--- a/src/pacman/download.c
+++ b/src/pacman/download.c
@@ -50,6 +50,7 @@ extern char *pmo_xfercommand;
extern unsigned short pmo_proxyport;
extern unsigned short pmo_nopassiveftp;
+extern unsigned short pmo_chomp;
extern int maxcols;
@@ -60,6 +61,11 @@ static int log_progress(netbuf *ctl, int xfered, void *arg)
int i, cur;
struct timeval t1;
float timediff;
+ /* a little hard to conceal easter eggs in open-source software, but
+ * they're still fun. ;)
+ */
+ static unsigned short mouth;
+ static unsigned int lastcur = 0;
gettimeofday(&t1, NULL);
if(xfered+offset == fsz) {
@@ -92,13 +98,39 @@ static int log_progress(netbuf *ctl, int xfered, void *arg)
printf(" %s [", sync_fnm);
cur = (int)((maxcols-64)*pct/100);
for(i = 0; i < maxcols-64; i++) {
- (i < cur) ? printf("#") : printf(" ");
+ if(pmo_chomp) {
+ if(i < cur) {
+ printf("-");
+ } else {
+ if(i == cur) {
+ if(lastcur == cur) {
+ if(mouth) {
+ printf("\033[1;33mC\033[m");
+ } else {
+ printf("\033[1;33mc\033[m");
+ }
+ } else {
+ mouth = mouth == 1 ? 0 : 1;
+ if(mouth) {
+ printf("\033[1;33mC\033[m");
+ } else {
+ printf("\033[1;33mc\033[m");
+ }
+ }
+ } else {
+ printf("\033[0;37m*\033[m");
+ }
+ }
+ } else {
+ (i < cur) ? printf("#") : printf(" ");
+ }
}
if(rate > 1000) {
printf("] %3d%% %6dK %6.0fK/s %02d:%02d:%02d\r", pct, ((xfered+offset) / 1024), rate, eta_h, eta_m, eta_s);
} else {
printf("] %3d%% %6dK %6.1fK/s %02d:%02d:%02d\r", pct, ((xfered+offset) / 1024), rate, eta_h, eta_m, eta_s);
}
+ lastcur = cur;
fflush(stdout);
return(1);
}
@@ -202,7 +234,7 @@ int downloadfiles_forreal(list_t *servers, const char *localpath,
char *host;
unsigned port;
host = (pmo_proxyhost) ? pmo_proxyhost : server->server;
- port = (pmo_proxyhost) ? pmo_proxyport : 80;
+ port = (pmo_proxyport) ? pmo_proxyport : 80;
if(strchr(host, ':')) {
vprint("connecting to %s\n", host);
} else {