# -*-eselect-*- vim: ft=eselect # Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU GPL version 2 or later DESCRIPTION="Manage the Projucer version" MAINTAINER="flewkey@2a03.party" VERSION="@V@" find_targets() { local target for target in "${EROOT}/opt/juce-"*; do [[ -f "${target}/Projucer" ]] && basename ${target} done } remove_symlink() { rm -f "${EROOT}/usr/bin/Projucer" } set_symlink() { local target="${1}" ln -s "${EROOT}/opt/${target}/Projucer" "${EROOT}/usr/bin/Projucer" } get_version() { local path=$(canonicalise "${EROOT}/usr/bin/Projucer") echo $(basename "${path::-8}") } validate_target() { [[ -f "${EROOT}/opt/${1}/Projucer" ]] || die } # show describe_show() { echo "Show the current Projucer version" } do_show() { write_list_start "Current Projucer version:" if [[ -f "${EROOT}/usr/bin/Projucer" ]]; then write_kv_list_entry $(get_version) "" else write_kv_list_entry "(unset)" "" fi } # list describe_list() { echo "List available Projucer versions" } do_list() { local i targets=( $(find_targets) ) write_list_start "Available Projucer versions:" for (( i = 0; i < ${#targets[@]}; i++ )); do [[ ${targets[i]} = $(get_version) ]] \ && targets[i]=$(highlight_marker "${targets[i]}") done write_numbered_list -m "(none found)" "${targets[@]}" } # set describe_set() { echo "Set a new Projucer version" } describe_set_parameters() { echo "" } describe_set_options() { echo "target : Target JUCE package" } do_set() { [[ -z ${1} ]] && die -q "Please specify a version of JUCE" local target="${1}" if is_number "${target}" ; then targets=( $(find_targets) ) target=${targets[$((${target}-1))]} fi validate_target ${target} || die -q "Invalid target" remove_symlink || die -q "Failed to remove the existing symlink" set_symlink "${target}" || die -q "Failed to set the new symlink" }