forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
eselect-opencascade-0.eselect
104 lines (90 loc) · 2.53 KB
/
eselect-opencascade-0.eselect
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# -*-eselect-*- vim: ft=eselect
# Copyright (c) 2006-2013 Gentoo Foundation
#
# 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/>.
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"
}
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##*/}
}