commit:     e78d413e73feb79c9336cd5f9a3ba13129719883
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 24 22:24:57 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Thu Dec 24 22:27:30 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e78d413e

app-eselect/eselect-lua: delete symlinks created by older versions

In theory, all the versions of eselect-lua which created those extra
symlinks were always masked - but it doesn't really cost one much to try
to clean these up and it might make some edge cases easier.

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 ...select-lua-4.ebuild => eselect-lua-4-r1.ebuild} |  0
 app-eselect/eselect-lua/files/lua.eselect-4        | 23 ++++++++++++++++++++--
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/app-eselect/eselect-lua/eselect-lua-4.ebuild 
b/app-eselect/eselect-lua/eselect-lua-4-r1.ebuild
similarity index 100%
rename from app-eselect/eselect-lua/eselect-lua-4.ebuild
rename to app-eselect/eselect-lua/eselect-lua-4-r1.ebuild

diff --git a/app-eselect/eselect-lua/files/lua.eselect-4 
b/app-eselect/eselect-lua/files/lua.eselect-4
index 15364c039c8..86c19460a15 100644
--- a/app-eselect/eselect-lua/files/lua.eselect-4
+++ b/app-eselect/eselect-lua/files/lua.eselect-4
@@ -12,6 +12,14 @@ HEADER_FILES="lauxlib.h luaconf.h lua.h lua.hpp lualib.h"
 remove_symlinks() {
        rm -f "${EROOT}"/usr/bin/{lua,luac} &>/dev/null 
        rm -f "${EROOT}"/usr/share/man/man1/lua{,c}.1{,.*} &>/dev/null
+       # Possible leftovers from earlier versions
+       for dir in $(get_libdirs) ; do
+               rm -f "${EROOT}"${dir}/liblua.so &>/dev/null && \
+               rm -f "${EROOT}"${dir}/pkgconfig/lua.pc &>/dev/null
+       done
+       for f in $HEADER_FILES ; do
+               rm -f "${EROOT}"/usr/include/${f}
+       done
 }
 
 _dup() {
@@ -31,6 +39,17 @@ set_symlinks() {
        done
 }
 
+get_libdirs() {
+       local dir libdirs
+       for dir in $(list_libdirs); do
+               [[ -L ${EROOT}/usr/${dir} ]] && continue
+               ls "${EROOT}"/usr/${dir}/liblua*.* > /dev/null 2>&1 || continue
+ 
+               libdirs+=' '/usr/${dir}
+       done
+       echo ${libdirs:-/usr/lib}
+}
+
 find_targets() {
        local dirs
        local prefix="${EROOT}/usr/bin/"
@@ -45,7 +64,7 @@ resolve_target() {
        if is_number $1; then
                [[ $1 -le ${#targets[@]} && $1 -gt 0 ]] && echo "${targets[ $(( 
$1 - 1 )) ]}"
        elif has $1 ${targets[@]}; then
-         echo $1
+               echo $1
        fi
 }
 
@@ -80,7 +99,7 @@ do_set() {
 
        local target=$(resolve_target $1)
        if [[ -z "${target}" ]]; then
-         die -q "You need to specify a version"
+               die -q "You need to specify a version"
        fi
        remove_symlinks
        set_symlinks $target

Reply via email to