From 575c4095bf6fbd37721922facdee909bc9cfd271 Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Mon, 23 Dec 2013 17:16:44 +0000 Subject: [PATCH] Do not print a question in non-interractive mode but explain why boostrapping has failed and how to allow it to happen Reported by: jmmv --- usr.sbin/pkg/pkg.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/usr.sbin/pkg/pkg.c b/usr.sbin/pkg/pkg.c index 89e07cc8b1b5..021149f088f5 100644 --- a/usr.sbin/pkg/pkg.c +++ b/usr.sbin/pkg/pkg.c @@ -821,6 +821,11 @@ static const char confirmation_message[] = "The package management tool is not yet installed on your system.\n" "Do you want to fetch and install it now? [y/N]: "; +static const char non_interractive_message[] = +"The package management tool is not yet installed on your system.\n" +"Please set ASSUME_ALWAYS_YES=yes environement variable to be able to boostrap " +"in non-interractive (stdin not being a tty)\n"; + static int pkg_query_yes_no(void) { @@ -939,10 +944,12 @@ main(int argc, char *argv[]) */ config_bool(ASSUME_ALWAYS_YES, &yes); if (!yes) { - printf("%s", confirmation_message); - if (!isatty(fileno(stdin))) + if (!isatty(fileno(stdin))) { + fprintf(stderr, non_interractive_message); exit(EXIT_FAILURE); + } + printf("%s", confirmation_message); if (pkg_query_yes_no() == 0) exit(EXIT_FAILURE); }