diff options
Diffstat (limited to 'app-eselect/eselect-opencascade/files/eselect-opencascade-1.eselect')
-rw-r--r-- | app-eselect/eselect-opencascade/files/eselect-opencascade-1.eselect | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/app-eselect/eselect-opencascade/files/eselect-opencascade-1.eselect b/app-eselect/eselect-opencascade/files/eselect-opencascade-1.eselect new file mode 100644 index 000000000000..bf2e0497a170 --- /dev/null +++ b/app-eselect/eselect-opencascade/files/eselect-opencascade-1.eselect @@ -0,0 +1,112 @@ +# -*-eselect-*- vim: ft=eselect +# Copyright (c) 2006-2019 Gentoo Authors +# +# This file is part of the 'eselect' tools framework. +# +# eselect is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 2 of the License, or (at your option) any later +# version. +# +# eselect is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# eselect. If not, see <http://www.gnu.org/licenses/>. + +DESCRIPTION="Manage OpenCASCADE implementation used by your system" +MAINTAINER="waebbl@gmail.com" +VERSION="1" + +MODULE=opencascade +TARGET=${EROOT}/etc/env.d/51${MODULE} +CONFDIR=${EROOT}/etc/env.d/${MODULE} + +inherit tests path-manipulation + +find_implems() { + local -a implems + for file in "${CONFDIR}"/* ; do + [[ -f ${file} ]] || continue + implems=(${implems[@]} "${file##*/}") + done + echo ${implems[@]} +} + +is_active() { + local f + [[ $# -eq 1 ]] || die "Need exactly 1 arguments!" + [[ -L ${TARGET} ]] || return 1 + f=$(canonicalise ${TARGET}) + [[ -e ${f} ]] || return 1 + [[ ${f##*/} == ${1} ]] +} + +# switch_implem $implem +# switches $iface combination to $implem +switch_implem() { + [[ $# -eq 1 ]] || die "Need exactly 1 arguments!" + $(is_active ${1}) && return + [[ -L ${TARGET} ]] && rm -f ${TARGET} + ln -s ${MODULE}/${1} ${TARGET} + env-update + echo "If you intend to use the selected opencascade in" + echo "an already running shell, please remember to do:" + echo + echo ". /etc/profile" +} + +describe_list() { + echo "List available OpenCASCADE implementations" +} + +do_list() { + local implem i + write_list_start "Installed $MODULE" + for implem in $(find_implems) ; do + (( i++ )) + is_active ${implem##*/} \ + && implem=$(highlight_marker "${implem}") + write_numbered_list_entry $i "${implem}" + done +} + +describe_set() { + echo "Activate one of the installed $MODULE implementations" +} + +describe_set_parameters() { + echo "<implementation>" +} + +describe_set_options() { + echo "implementation : implementation name or number (from 'list' action)" +} + +do_set() { + [[ $# -ne 1 ]] && die -q "Please specify exactly 1 implementation!" + local -a implems + + implems=( $(find_implems) ) + + if is_number ${1} ; then + new_implem=${implems[$(( ${1} - 1 ))]} + else + new_implem=${1} + fi + echo $new_implem + switch_implem ${new_implem} +} + +describe_show() { + echo "Print the currently active $MODULE implementation" +} + +do_show() { + local f n + [[ -L ${TARGET} ]] || return 1 + f=$(canonicalise ${TARGET}) + [[ -f ${f} ]] || return 1 + echo ${f##*/} +} |