public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Vadim Misbakh-Soloviov" <mva@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoo-syntax:master commit in: plugin/
Date: Fri, 10 Dec 2021 11:41:05 +0000 (UTC)	[thread overview]
Message-ID: <1639135654.2455886f7fde605f081bc5fa95c5735ca89afd2d.mva@gentoo> (raw)

commit:     2455886f7fde605f081bc5fa95c5735ca89afd2d
Author:     Vadim Misbakh-Soloviov <mva <AT> gentoo <DOT> org>
AuthorDate: Thu Dec  9 09:12:18 2021 +0000
Commit:     Vadim Misbakh-Soloviov <mva <AT> gentoo <DOT> org>
CommitDate: Fri Dec 10 11:27:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/gentoo-syntax.git/commit/?id=2455886f

gentoo-common: try to load pythons from python-exec.conf

Signed-off-by: Vadim Misbakh-Soloviov <mva <AT> gentoo.org>

 plugin/gentoo-common.vim | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/plugin/gentoo-common.vim b/plugin/gentoo-common.vim
index 42b2451..50478ba 100644
--- a/plugin/gentoo-common.vim
+++ b/plugin/gentoo-common.vim
@@ -56,8 +56,32 @@ fun! GentooGetPythonTargets()
     if exists("g:gentoopythontargets") && g:gentoopythontargets != ""
         return g:gentoopythontargets
     else
-        let l:py3 = system("python -c 'import epython; print(epython.EPYTHON)'")
-        let l:py3 = substitute(l:py3, "\n", "", "g")
+        let l:pyexec_path = "/etc/python-exec/python-exec.conf"
+
+        if filereadable(l:pyexec_path)
+            let l:pys = readfile(l:pyexec_path)->filter("v:val =~ '^[^#-]'")->sort()
+            let l:py3s = []
+            let l:others = []
+            for l:py in l:pys
+                let l:m = l:py->matchstr("^python3.*")->matchstr("\\d*$")
+                if !empty(l:m)
+                    eval l:py3s->add(l:m)
+                    continue
+                else
+                    eval l:others->add(l:py)
+                endif
+            endfor
+            let l:impls = []
+            if len(l:py3s) ==# 1
+                let l:impls = l:impls->add("python3.".l:py3s->join())
+            elseif len(l:py3s) > 1
+                let l:impls = l:impls->add("python3.{".l:py3s->sort('N')->join(",")."}")
+            endif
+            let l:py3 = flatten(l:impls->add(l:others))->join()
+        endif
+        if empty(l:py3)
+            let l:py3 = system("python -c 'import epython; print(epython.EPYTHON)'")->substitute("\n","","g")
+        endif
 
         let l:pythons = substitute(l:py3, "[.]", "_", "g")
 


             reply	other threads:[~2021-12-10 11:41 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-10 11:41 Vadim Misbakh-Soloviov [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-08 16:11 [gentoo-commits] proj/gentoo-syntax:master commit in: plugin/ Michał Górny
2025-03-08 16:11 Michał Górny
2023-12-27 15:58 Michał Górny
2023-11-02 12:58 Michał Górny
2023-06-14 14:25 Michał Górny
2023-06-14 14:25 Michał Górny
2023-06-14 14:25 Michał Górny
2023-06-14 14:25 Michał Górny
2023-06-14 14:25 Michał Górny
2023-06-14 14:25 Michał Górny
2023-03-15  8:29 Michał Górny
2023-03-14 17:39 Michał Górny
2023-03-14 17:39 Michał Górny
2023-02-01  5:03 Michał Górny
2023-01-02 18:43 Michał Górny
2022-12-04 14:47 Michał Górny
2022-07-13  5:26 Michał Górny
2022-05-02 19:06 Michał Górny
2022-05-02 19:06 Michał Górny
2022-02-06 11:59 Michał Górny
2022-02-03  8:36 Michał Górny
2022-02-03  8:36 Michał Górny
2022-02-03  8:36 Michał Górny
2022-02-03  8:36 Michał Górny
2022-01-26  8:28 Michał Górny
2022-01-26  8:28 Michał Górny
2022-01-26  8:28 Michał Górny
2021-12-10 11:41 Vadim Misbakh-Soloviov
2021-12-08 22:40 Michał Górny
2021-11-06 11:05 Michał Górny
2021-09-11 14:02 Mike Gilbert
2021-08-28 11:20 Michał Górny
2021-08-28 11:02 Michał Górny
2021-07-16 18:36 Michał Górny
2021-07-16 15:30 Michał Górny
2021-07-16 15:30 Michał Górny
2020-10-07 10:07 Michał Górny
2020-06-05  5:28 Michał Górny
2020-06-04  6:02 Michał Górny
2020-03-08 13:24 Michał Górny
2019-12-13 18:29 Mikle Kolyada
2019-12-13 18:27 Mikle Kolyada
2019-11-27  8:16 Michał Górny
2019-08-17  6:52 Michał Górny
2019-06-09 17:35 Michał Górny
2018-09-16 17:17 Michał Górny
2018-08-27 19:52 James Le Cuirot
2018-08-20 20:47 Michał Górny
2018-08-14 14:13 Michał Górny
2018-08-14 14:13 Michał Górny
2018-08-14 13:58 Michał Górny
2018-08-14 13:55 Michał Górny
2017-02-25 16:09 Mike Gilbert
2017-02-25 16:06 Mike Gilbert
2017-02-25 16:03 Mike Gilbert
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-03-05 23:35 Tim Harder
2016-02-01 23:42 Tim Harder
2015-08-10 15:25 Mike Gilbert
2014-11-02  0:28 Tim Harder
2013-06-18 22:36 Tim Harder
2013-06-18 22:36 Tim Harder
2013-02-05  1:25 Tim Harder
2013-01-24 20:00 Tim Harder
2013-01-23 22:53 Tim Harder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1639135654.2455886f7fde605f081bc5fa95c5735ca89afd2d.mva@gentoo \
    --to=mva@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox