From 0352db802e9ddff35286b247e27a89ea11a78929 Mon Sep 17 00:00:00 2001 From: Joshua Spence Date: Fri, 2 Jan 2015 11:36:24 +1100 Subject: [PATCH] Suppress stdin message if input is piped Summary: Currently we output "Waiting for JSON parameters on stdin...", even if `stdin` is piped (for example, from `echo`). Test Plan: ```lang=bash > echo '{}' | arc call-conduit conduit.ping {"error":null,"errorMessage":null,"response":"ip-10-161-81-110"} > arc call-conduit conduit.ping Waiting for JSON parameters on stdin... {} ^D {"error":null,"errorMessage":null,"response":"ip-10-161-81-110"} ``` Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: Korvin, epriestley Differential Revision: https://secure.phabricator.com/D11122 --- src/workflow/ArcanistCallConduitWorkflow.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/workflow/ArcanistCallConduitWorkflow.php b/src/workflow/ArcanistCallConduitWorkflow.php index 9553d1d6..2a5ea379 100644 --- a/src/workflow/ArcanistCallConduitWorkflow.php +++ b/src/workflow/ArcanistCallConduitWorkflow.php @@ -61,7 +61,11 @@ EOTEXT $method = reset($method); $console = PhutilConsole::getConsole(); - $console->writeErr("%s\n", pht('Waiting for JSON parameters on stdin...')); + if (!function_exists('posix_isatty') || posix_isatty(STDIN)) { + $console->writeErr( + "%s\n", + pht('Waiting for JSON parameters on stdin...')); + } $params = @file_get_contents('php://stdin'); $params = json_decode($params, true); if (!is_array($params)) {