dev-python/django: Redo bash-completion patch for 3.0.6
authorMichał Górny <mgorny@gentoo.org>
Wed, 6 May 2020 05:26:30 +0000 (07:26 +0200)
committerMichał Górny <mgorny@gentoo.org>
Wed, 6 May 2020 06:03:56 +0000 (08:03 +0200)
Signed-off-by: Michał Górny <mgorny@gentoo.org>
dev-python/django/django-3.0.6.ebuild
dev-python/django/files/django-3.0.6-bashcomp.patch [new file with mode: 0644]

index 0482e460c9a1054bb16ed932582dffc678ab68cf..9b34e353eec85fee888487698723f971f4a6dabf 100644 (file)
@@ -44,6 +44,10 @@ BDEPEND="
                dev-python/tblib[${PYTHON_USEDEP}]
        )"
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-3.0.6-bashcomp.patch
+)
+
 distutils_enable_sphinx docs
 
 python_test() {
diff --git a/dev-python/django/files/django-3.0.6-bashcomp.patch b/dev-python/django/files/django-3.0.6-bashcomp.patch
new file mode 100644 (file)
index 0000000..2eca341
--- /dev/null
@@ -0,0 +1,56 @@
+From d082b413b0b6edfcae52f64c8a64f16b2bf6110f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Wed, 6 May 2020 07:24:05 +0200
+Subject: [PATCH] Remove completions unsuitable for autoloading
+
+The override of 'python*' completions, as well as the attempt
+to './manage.py' completion are not going to work with autoloader.
+Strip them.
+---
+ extras/django_bash_completion | 33 +--------------------------------
+ 1 file changed, 1 insertion(+), 32 deletions(-)
+
+diff --git a/extras/django_bash_completion b/extras/django_bash_completion
+index 3c2f14c263..abe76e5903 100755
+--- a/extras/django_bash_completion
++++ b/extras/django_bash_completion
+@@ -37,35 +37,4 @@ _django_completion()
+                    COMP_CWORD=$COMP_CWORD \
+                    DJANGO_AUTO_COMPLETE=1 $1 ) )
+ }
+-complete -F _django_completion -o default django-admin.py manage.py django-admin
+-
+-_python_django_completion()
+-{
+-    if [[ ${COMP_CWORD} -ge 2 ]]; then
+-        local PYTHON_EXE=${COMP_WORDS[0]##*/}
+-        if echo "$PYTHON_EXE" | grep -qE "python([3-9]\.[0-9])?"; then
+-            local PYTHON_SCRIPT=${COMP_WORDS[1]##*/}
+-            if echo "$PYTHON_SCRIPT" | grep -qE "manage\.py|django-admin(\.py)?"; then
+-                COMPREPLY=( $( COMP_WORDS=( "${COMP_WORDS[*]:1}" )
+-                               COMP_CWORD=$(( COMP_CWORD-1 ))
+-                               DJANGO_AUTO_COMPLETE=1 ${COMP_WORDS[*]} ) )
+-            fi
+-        fi
+-    fi
+-}
+-
+-# Support for multiple interpreters.
+-unset pythons
+-if command -v whereis &>/dev/null; then
+-    python_interpreters=$(whereis python | cut -d " " -f 2-)
+-    for python in $python_interpreters; do
+-        [[ $python != *-config ]] && pythons="${pythons} ${python##*/}"
+-    done
+-    unset python_interpreters
+-    pythons=$(echo "$pythons" | tr " " "\n" | sort -u | tr "\n" " ")
+-else
+-    pythons=python
+-fi
+-
+-complete -F _python_django_completion -o default $pythons
+-unset pythons
++complete -F _django_completion -o default django-admin.py django-admin
+-- 
+2.26.2
+