Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2667318pxb; Tue, 12 Oct 2021 10:58:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxfJbpErq3XDSIq6ce6ccHAw1rFniAlGz8xLXHaCKTJl1tM1rgUL4/A+Xl0J73fOL3eGqRX X-Received: by 2002:a62:3102:0:b0:44b:63db:fc88 with SMTP id x2-20020a623102000000b0044b63dbfc88mr33422299pfx.75.1634061522734; Tue, 12 Oct 2021 10:58:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634061522; cv=none; d=google.com; s=arc-20160816; b=Pd32D+Wj26Vua9KdcoAuTf8Ev9pP+X7tQsfOJkcFFUOz99i2YS7m5eqIWg17r1uv15 kRo9C4f7QTXI+l76Z3WNddFd599mXl+99q9un+bKXNk6e9C39fKIWNwYHB3g8y7RI0A5 TOfJC1DYlAipBKUrHlIUDcoI6TNfimNGTHP8eukskZlRJRpaEQBe+TaDB8Nq1vjUeZSn 0ECDOCa+PmfNtKaBUWfHQLgsNJT5DSt9LzQwMv3ZJKnmRCZSJxUC5xvXa9B40hhfo8Nk GNjckkZ6NXJjoGgagsQVBZEoliyOPbChgMFGFWuLo0/gskkrxiMt5hVzT5IntakC26Po pKQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=56ek1cv9X0eVQ8yguQyGpkOhn1PvaPz+RefUG/FAXLc=; b=o55giqlNjLO5nhf90WGy/9TVjY+s28taRcCLd+H8YkskbdPIl1vF8NIXR9zmFacW7M 89e2N0Pe89ZayEMD6VHwzBYdQaPi9985lZfqR4RNwi9CPAASnex/w+cw6HeJAvI+8b9Y CtOBjgPsFw0ef048JE1nljbzQyMugz/IlUb8Us/mrfdD+9gXBz+ttNa2xKVd+WfxER+c 5ausUJoMWwMz63hNlqBj5KDa31sFniv3rgxN1BH8J4FSlC5pi2I05KTWVjuGncXVBBD5 A/i2Lt17O3vfe7QjTKnKRNaORVkDll60zmnCsttfopR9jhMtNIowcF078u7IsJjCCIEJ 1jqg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s14si4250532pjn.13.2021.10.12.10.58.29; Tue, 12 Oct 2021 10:58:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232694AbhJLR7c (ORCPT + 99 others); Tue, 12 Oct 2021 13:59:32 -0400 Received: from mga17.intel.com ([192.55.52.151]:14899 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230522AbhJLR73 (ORCPT ); Tue, 12 Oct 2021 13:59:29 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10135"; a="208029258" X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="208029258" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2021 10:57:27 -0700 X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="626042986" Received: from fiegl-mobl.ger.corp.intel.com (HELO [10.249.40.252]) ([10.249.40.252]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2021 10:57:26 -0700 Message-ID: <77d10fa8-c07a-b679-d712-6fd05229e4d2@linux.intel.com> Date: Tue, 12 Oct 2021 20:57:37 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: [PATCH v5] checkpatch: get default codespell dictionary path from package location Content-Language: en-US To: Joe Perches , apw@canonical.com Cc: dwaipayanray1@gmail.com, lukas.bulwahn@gmail.com, linux-kernel@vger.kernel.org References: <20211012112918.19166-1-peter.ujfalusi@linux.intel.com> <307188c4a27dc488437e74d5f8980dfcad65ecbd.camel@perches.com> From: =?UTF-8?Q?P=c3=a9ter_Ujfalusi?= In-Reply-To: <307188c4a27dc488437e74d5f8980dfcad65ecbd.camel@perches.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/10/2021 16:57, Joe Perches wrote: > On Tue, 2021-10-12 at 14:29 +0300, Peter Ujfalusi wrote: >> The standard location of dictionary.txt is under codespell's package, on >> my machine atm (codespell 2.1, Artix Linux): >> /usr/lib/python3.9/site-packages/codespell_lib/data/dictionary.txt >> >> Since we enable the codespell by default for SOF I have constant: >> No codespell typos will be found - \ >> file '/usr/share/codespell/dictionary.txt': No such file or directory >> >> The patch proposes to try to fix up the path following the recommendation >> found here: >> https://github.com/codespell-project/codespell/issues/1540 > > trivia: > >> @@ -325,9 +326,31 @@ GetOptions( >>   'kconfig-prefix=s' => \${CONFIG_}, >>   'h|help' => \$help, >>   'version' => \$help >> -) or help(1); >> +) or $help = 2; >> + >> +my $python_codespell_dict = << "EOF"; > > Because you add a semicolon after "EOF" > >> +import os.path as op >> +import codespell_lib >> +codespell_dir = op.dirname(codespell_lib.__file__) >> +codespell_file = op.join(codespell_dir, 'data', 'dictionary.txt') >> +print(codespell_file, end='') >> +EOF >> +; > > this is an extra semicolon Ah, I see. It shows that perl is not my fo to scripting language. > >> +if ($user_codespellfile) { >> + # Use the user provided codespell file unconditionally >> + $codespellfile = $user_codespellfile; >> +} else { >> + # Try to find the codespell install location to use it as default path >> + if (($codespell || $help) && which("codespell") ne "" && which("python") ne "") { > > and I would keep the my $python_codespell_dict definition local to this block. OK, I did it like this because to my eyes this looks strange: if ($user_codespellfile) { # Use the user provided codespell file unconditionally $codespellfile = $user_codespellfile; } else { # Try to find the codespell install location to use it as default path if (($codespell || $help) && which("codespell") ne "" && which("python") ne "") { my $python_codespell_dict = << "EOF"; import os.path as op import codespell_lib codespell_dir = op.dirname(codespell_lib.__file__) codespell_file = op.join(codespell_dir, 'data', 'dictionary.txt') print(codespell_file, end='') EOF my $codespell_dict = `python -c "$python_codespell_dict" 2> /dev/null`; $codespellfile = $codespell_dict if (-e $codespell_dict); } } >> + my $codespell_dict = `python3 -c "$python_codespell_dict" 2> /dev/null`; >> + $codespellfile = $codespell_dict if (-e $codespell_dict); >> + } >> +} > > It's wrong to check which("python") and then exec `python3 ...` Oops, you are right. > > -- Péter