From patchwork Wed Feb 25 21:17:26 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Erdmann?= X-Patchwork-Id: 443661 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) by ozlabs.org (Postfix) with ESMTP id A6F88140083 for ; Thu, 26 Feb 2015 08:23:38 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="verification failed; unprotected key" header.d=mailerd.de header.i=@mailerd.de header.b=j1qonhKa; dkim-adsp=none (unprotected policy); dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id E5AA5A3406; Wed, 25 Feb 2015 21:23:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nrBu6PEf7ej5; Wed, 25 Feb 2015 21:23:37 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 443D1A3411; Wed, 25 Feb 2015 21:23:37 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 4FF491C2214 for ; Wed, 25 Feb 2015 21:23:36 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 4B63BA3406 for ; Wed, 25 Feb 2015 21:23:36 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G3JHiCPuPY3f for ; Wed, 25 Feb 2015 21:23:35 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-we0-f170.google.com (mail-we0-f170.google.com [74.125.82.170]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 6380DA3444 for ; Wed, 25 Feb 2015 21:23:35 +0000 (UTC) Received: by wevk48 with SMTP id k48so6327587wev.0 for ; Wed, 25 Feb 2015 13:23:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailerd.de; s=mails; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=zb80TCO4CwZUNrcsGK4q5mUcOPBVnQdvyg97/iVL3M8=; b=j1qonhKaRhz87Vj35c6QGXSh0kU+9fsWsGCVq/wp90olYT4OIa4J82mQmQi9LyT6NG goZPBZMeszssYff51rDP5Q9O5cB7gIQ/djZtSy1AGPcmT5+Z5hoSFOGCI9WeM95nwcrq nOBFxoORbAmLn/ggxG1Sbb0TIvczajqesvKTM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-type :content-transfer-encoding; bh=zb80TCO4CwZUNrcsGK4q5mUcOPBVnQdvyg97/iVL3M8=; b=TLOFqqUWuQm/wVpAtjLSaxBSEvAXAst7+gjxgWSyOWhYj3yMZPW7Q9L582Gwa8XVEA iiHXbn5b6f2JZNjaVjZCT+wdbF2CLfDg4HMniAVouQycSYAiUD+ZLEquAUHUVg9k3mp8 OcnGWoVMV3jSk6pdnsaHkXiYUB8S8SLQeKHFtY1vsZhl7U5nZQ+gCE9Dplukctj3oX93 Sl+fGHibngGFHJ/gF4SdfsXOZTT6PcQThkyw9McKU9V7xlHoCMtKAqdPg9gu57K2oKXA TYqwG4KVHxnjG773B+6oqr0UV4iNBtpIn8VqtFRv5c2R3TmS8ZY7Qdhkl3JHHZoFQLUU TEMw== X-Gm-Message-State: ALoCoQmkz5QNRd5y4wOlHb16W3AZrhkP4afyIK2Xf5EnI/4R2w/be/08YGABiOqb7PmhAjPIiODU X-Received: by 10.180.207.6 with SMTP id ls6mr44629403wic.13.1424899077863; Wed, 25 Feb 2015 13:17:57 -0800 (PST) Received: from localhost.localdomain (dslb-188-105-009-107.188.105.pools.vodafone-ip.de. [188.105.9.107]) by mx.google.com with ESMTPSA id fo9sm26800926wib.16.2015.02.25.13.17.56 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 25 Feb 2015 13:17:57 -0800 (PST) From: =?UTF-8?q?Andr=C3=A9=20Erdmann?= To: buildroot@buildroot.org Date: Wed, 25 Feb 2015 22:17:26 +0100 Message-Id: <1424899050-24932-10-git-send-email-dywi@mailerd.de> X-Mailer: git-send-email 2.3.0 In-Reply-To: <1424899050-24932-1-git-send-email-dywi@mailerd.de> References: <1424899050-24932-1-git-send-email-dywi@mailerd.de> MIME-Version: 1.0 Cc: thomas.petazzoni@free-electrons.com Subject: [Buildroot] [PATCH 09/13] autobuild-run: unify "which " code X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Signed-off-by: André Erdmann --- scripts/autobuild-run | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/scripts/autobuild-run b/scripts/autobuild-run index 52577e7..9c3e36c 100755 --- a/scripts/autobuild-run +++ b/scripts/autobuild-run @@ -109,8 +109,11 @@ def check_version(): print("ERROR: script version too old, please upgrade.") sys.exit(1) +def has_prog(name): + with open(os.devnull, "w") as devnull: + return subprocess.call(["which", name], stdout=devnull, stderr=devnull) == os.EX_OK + def check_requirements(http_login, http_password): - devnull = open(os.devnull, "w") needed_progs = ["make", "git", "gcc", "timeout"] missing_requirements = False @@ -118,8 +121,7 @@ def check_requirements(http_login, http_password): needed_progs.append("curl") for prog in needed_progs: - ret = subprocess.call(["which", prog], stdout=devnull, stderr=devnull) - if ret != 0: + if not has_prog(prog): print("ERROR: your system lacks the '%s' program" % prog) missing_requirements = True @@ -129,24 +131,18 @@ def check_requirements(http_login, http_password): class SystemInfo: def __init__(self): devnull = open(os.devnull, "w") + # _grep_gcj :: str -> int + _grep_gcj = lambda prog: \ + subprocess.call("%s -version | grep gcj" % prog, shell=True, + stdout=devnull, stderr=devnull) - self.has_bzr = \ - subprocess.call(["which", "bzr"], stdout=devnull, stderr=devnull) == 0 + self.has_bzr = has_prog("bzr") - self.has_java = False - if subprocess.call(["which", "java"], stdout=devnull, stderr=devnull) == 0: - if subprocess.call("java -version | grep gcj", shell=True, - stdout=devnull, stderr=devnull) == 1: - self.has_java = True + self.has_java = has_prog("java") and _grep_gcj("java") == 1 - self.has_javac = False - if subprocess.call(["which", "javac"], stdout=devnull, stderr=devnull) == 0: - if subprocess.call("javac -version | grep gcj", shell=True, - stdout=devnull, stderr=devnull) == 1: - self.has_javac = True + self.has_javac = has_prog("javac") and _grep_gcj("javac") == 1 - self.has_jar = \ - subprocess.call(["which", "jar"], stdout=devnull, stderr=devnull) == 0 + self.has_jar = has_prog("jar") def get_toolchain_configs(): """Fetch and return the possible toolchain configurations