summaryrefslogtreecommitdiff
path: root/src/apk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/apk.c')
-rw-r--r--src/apk.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/apk.c b/src/apk.c
index 752409f..3bf1154 100644
--- a/src/apk.c
+++ b/src/apk.c
@@ -264,14 +264,21 @@ static void on_sigwinch(int s)
static void setup_terminal(void)
{
setvbuf(stderr, NULL, _IOLBF, BUFSIZ);
- if (isatty(STDOUT_FILENO) && isatty(STDERR_FILENO) && isatty(STDIN_FILENO)) {
- apk_flags |= APK_PROGRESS;
- if (access("/etc/apk/interactive", F_OK) == 0)
- apk_flags |= APK_INTERACTIVE;
- }
signal(SIGWINCH, on_sigwinch);
}
+static void setup_automatic_flags(void)
+{
+ if (!isatty(STDOUT_FILENO) || !isatty(STDERR_FILENO) ||
+ !isatty(STDIN_FILENO))
+ return;
+
+ apk_flags |= APK_PROGRESS;
+ if (!(apk_flags & APK_SIMULATE) &&
+ access("/etc/apk/interactive", F_OK) == 0)
+ apk_flags |= APK_INTERACTIVE;
+}
+
int main(int argc, char **argv)
{
struct apk_applet *applet;
@@ -422,6 +429,7 @@ int main(int argc, char **argv)
break;
}
}
+ setup_automatic_flags();
if (applet == NULL) {
r = usage(NULL);