#include <errno.h>
#include <stdlib.h>
+#include <unistd.h>
#include <pakfire/i18n.h>
#include <pakfire/pakfire.h>
#include <pakfire/request.h>
#include <pakfire/ui.h>
+static int pakfire_ui_is_interactive(struct pakfire* pakfire) {
+ if (!isatty(STDIN_FILENO))
+ return 1;
+
+ if (!isatty(STDOUT_FILENO))
+ return 1;
+
+ if (!isatty(STDERR_FILENO))
+ return 1;
+
+ return 0;
+}
+
static int pakfire_ui_enter_number(struct pakfire* pakfire, const char* question,
unsigned int* choice, unsigned int min, unsigned int max) {
char* line = NULL;
// Print question
printf("%s ", question);
+ // Do not wait for any input if the terminal isn't interactive
+ if (!pakfire_ui_is_interactive(pakfire))
+ break;
+
// Wait for the user to enter something
ssize_t bytes_read = getline(&line, &length, stdin);
if (bytes_read < 0)