Re: Codespell dictionary path is no longer absolute

From: Joe Perches
Date: Sun May 09 2021 - 13:02:46 EST


On Sun, 2021-05-09 at 21:12 +0530, Dwaipayan Ray wrote:
> A year ago, the codespell dictionary was moved from
> /usr/share/codespell/dictionary.txt to data/dictionary.txt under
> the codespell_lib installation directory.
>
> checkpatch.pl still has the default codespell path as
> /usr/share/codespell/dictionary.txt.
> Any new installations will now also need to specify --codespellfile
> option along with --codespell.
>
> Can auto detection of the dictionary path be enabled with something
> like this?
[]
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -889,6 +889,9 @@ if (open(my $spelling, '<', $spelling_file)) {
> }
>
> if ($codespell) {
> + if (! -e "$codespellfile" && which("python") ne "") {
> + $codespellfile = `python -c "import os.path as op; import code
> spell_lib; print(op.join(op.dirname(codespell_lib.__file__), 'data', 'dictiona
> ry.txt'), end='')"`;
> + }

Maybe, but it doesn't work with python2

And it's likely better to do as few things in python as possible
so maybe ditch the op.join and use perl instead

if (! -e "$codespellfile" && which("python") ne "" &&
`python -c "import sys; print(sys.version_info.major)"` >= "3") {
$codespellfile = dirname(`python -c "import codespell_lib; print(codespell_lib.__file__);"`) . "/data/dictionary.txt";
}