apk: show progress bar by default for tty controlled runs
and make the progress bar disappear on regular runs too.cute-signatures
parent
5d64bc5d8c
commit
20775276b9
|
@ -17,6 +17,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#include <openssl/crypto.h>
|
#include <openssl/crypto.h>
|
||||||
|
@ -45,6 +46,7 @@ static struct apk_option generic_options[] = {
|
||||||
{ 'f', "force", "Do what was asked even if it looks dangerous" },
|
{ 'f', "force", "Do what was asked even if it looks dangerous" },
|
||||||
{ 'U', "update-cache", "Update the repository cache" },
|
{ 'U', "update-cache", "Update the repository cache" },
|
||||||
{ 0x101, "progress", "Show a progress bar" },
|
{ 0x101, "progress", "Show a progress bar" },
|
||||||
|
{ 0x110, "no-progress", "Disable progress bar even for TTYs" },
|
||||||
{ 0x102, "clean-protected", "Do not create .apk-new files to "
|
{ 0x102, "clean-protected", "Do not create .apk-new files to "
|
||||||
"configuration dirs" },
|
"configuration dirs" },
|
||||||
{ 0x106, "purge", "Delete also modified configuration files on "
|
{ 0x106, "purge", "Delete also modified configuration files on "
|
||||||
|
@ -256,6 +258,9 @@ int main(int argc, char **argv)
|
||||||
apk_atom_init();
|
apk_atom_init();
|
||||||
umask(0);
|
umask(0);
|
||||||
|
|
||||||
|
if (isatty(STDOUT_FILENO) && isatty(STDERR_FILENO) && isatty(STDIN_FILENO))
|
||||||
|
apk_flags |= APK_PROGRESS;
|
||||||
|
|
||||||
applet = deduce_applet(argc, argv);
|
applet = deduce_applet(argc, argv);
|
||||||
num_options = ARRAY_SIZE(generic_options) + 1;
|
num_options = ARRAY_SIZE(generic_options) + 1;
|
||||||
if (applet != NULL)
|
if (applet != NULL)
|
||||||
|
@ -326,6 +331,9 @@ int main(int argc, char **argv)
|
||||||
case 0x101:
|
case 0x101:
|
||||||
apk_flags |= APK_PROGRESS;
|
apk_flags |= APK_PROGRESS;
|
||||||
break;
|
break;
|
||||||
|
case 0x110:
|
||||||
|
apk_flags &= ~APK_PROGRESS;
|
||||||
|
break;
|
||||||
case 0x102:
|
case 0x102:
|
||||||
apk_flags |= APK_CLEAN_PROTECTED;
|
apk_flags |= APK_CLEAN_PROTECTED;
|
||||||
break;
|
break;
|
||||||
|
|
11
src/state.c
11
src/state.c
|
@ -655,7 +655,7 @@ static void apk_count_change(struct apk_change *change, struct apk_stats *stats)
|
||||||
stats->packages ++;
|
stats->packages ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void apk_draw_progress(int percent, int last)
|
static inline void apk_draw_progress(int percent)
|
||||||
{
|
{
|
||||||
char tmp[128];
|
char tmp[128];
|
||||||
char reset[128];
|
char reset[128];
|
||||||
|
@ -666,10 +666,7 @@ static inline void apk_draw_progress(int percent, int last)
|
||||||
tmp[2+i] = '#';
|
tmp[2+i] = '#';
|
||||||
memset(reset, '\b', strlen(tmp));
|
memset(reset, '\b', strlen(tmp));
|
||||||
fwrite(tmp, strlen(tmp), 1, stderr);
|
fwrite(tmp, strlen(tmp), 1, stderr);
|
||||||
if (!last)
|
fwrite(reset, strlen(tmp), 1, stderr);
|
||||||
fwrite(reset, strlen(tmp), 1, stderr);
|
|
||||||
else if (apk_verbosity > 0)
|
|
||||||
fwrite("\n", 1, 1, stderr);
|
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -692,7 +689,7 @@ static void progress_cb(void *ctx, size_t progress)
|
||||||
prog->total.bytes + prog->total.packages);
|
prog->total.bytes + prog->total.packages);
|
||||||
|
|
||||||
if (prog->count != count)
|
if (prog->count != count)
|
||||||
apk_draw_progress(count, 0);
|
apk_draw_progress(count);
|
||||||
prog->count = count;
|
prog->count = count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -961,7 +958,7 @@ int apk_state_commit(struct apk_state *state,
|
||||||
apk_count_change(change, &prog.done);
|
apk_count_change(change, &prog.done);
|
||||||
}
|
}
|
||||||
if (apk_flags & APK_PROGRESS)
|
if (apk_flags & APK_PROGRESS)
|
||||||
apk_draw_progress(100, 1);
|
apk_draw_progress(100);
|
||||||
|
|
||||||
update_state:
|
update_state:
|
||||||
apk_db_run_triggers(db);
|
apk_db_run_triggers(db);
|
||||||
|
|
Loading…
Reference in New Issue