X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=fish%2Ffish.c;h=923c6dde0d94d31203384edc7ebcaa96182ba2ca;hb=afe56418946bd8be0706435ed6045bb3ba0f9f99;hp=d6fed369a20e6fa9841d112e1743a1b4b91f11ba;hpb=11374abeadfb01252bdb02c0915d1edc79512e79;p=libguestfs.git diff --git a/fish/fish.c b/fish/fish.c index d6fed36..923c6dd 100644 --- a/fish/fish.c +++ b/fish/fish.c @@ -88,6 +88,7 @@ int inspector = 0; int utf8_mode = 0; int have_terminfo = 0; int progress_bars = 0; +int is_interactive = 0; static void __attribute__((noreturn)) usage (int status) @@ -220,19 +221,6 @@ main (int argc, char *argv[]) exit (EXIT_FAILURE); } - /* If developing, add ./appliance to the path. Note that libtools - * interferes with this because uninstalled guestfish is a shell - * script that runs the real program with an absolute path. Detect - * that too. - * - * BUT if LIBGUESTFS_PATH environment variable is already set by - * the user, then don't override it. - */ - if (getenv ("LIBGUESTFS_PATH") == NULL && - argv[0] && - (argv[0][0] != '/' || strstr (argv[0], "/.libs/lt-") != NULL)) - guestfs_set_path (g, "appliance:" GUESTFS_DEFAULT_PATH); - /* CAUTION: we are careful to modify argv[0] here, only after * using it just above. * @@ -397,6 +385,12 @@ main (int argc, char *argv[]) } } + /* Decide here if this will be an interactive session. We have to + * do this as soon as possible after processing the command line + * args. + */ + is_interactive = !file && isatty (0); + /* Old-style -i syntax? Since -a/-d/-N and -i was disallowed * previously, if we have -i without any drives but with something * on the command line, it must be old-style syntax. @@ -499,7 +493,7 @@ main (int argc, char *argv[]) progress_bars = override_progress_bars >= 0 ? override_progress_bars - : (optind >= argc && isatty (0)); + : (optind >= argc && is_interactive); if (progress_bars) guestfs_set_event_callback (g, progress_callback, @@ -507,7 +501,7 @@ main (int argc, char *argv[]) /* Interactive, shell script, or command(s) on the command line? */ if (optind >= argc) { - if (isatty (0)) + if (is_interactive) interactive (); else shell_script ();