Gentoo Archives: gentoo-commits

From: "Ulrich Mueller (ulm)" <ulm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in app-admin/eselect-maven/files: maven-0.2.eselect maven.eselect-1
Date: Sun, 28 Feb 2010 19:31:07
Message-Id: E1Nlor3-0001wE-7k@stork.gentoo.org
1 ulm 10/02/28 19:31:05
2
3 Added: maven-0.2.eselect
4 Removed: maven.eselect-1
5 Log:
6 Add support for brief output mode, bug 292101. Remove intermediate version.
7 (Portage version: 2.2_rc63/cvs/Linux i686)
8
9 Revision Changes Path
10 1.1 app-admin/eselect-maven/files/maven-0.2.eselect
11
12 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-admin/eselect-maven/files/maven-0.2.eselect?rev=1.1&view=markup
13 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-admin/eselect-maven/files/maven-0.2.eselect?rev=1.1&content-type=text/plain
14
15 Index: maven-0.2.eselect
16 ===================================================================
17 # -*-eselect-*- vim: ft=eselect
18 # Copyright 1999-2010 Gentoo Foundation
19 # Distributed under the terms of the GNU General Public License v2
20 # $Id: maven-0.2.eselect,v 1.1 2010/02/28 19:31:04 ulm Exp $
21
22 DESCRIPTION="Manage Maven targets"
23 MAINTAINER="java@g.o"
24 VERSION="0.2"
25
26 MVN="${EROOT}/usr/bin/mvn"
27
28 # find a list of mvn symlink targets, best first.
29 find_targets() {
30 for f in $(ls -r "${MVN}"-[0-9]* 2> /dev/null) ; do
31 if [[ -f "${f}" ]] ; then
32 echo $(basename "${f}")
33 fi
34 done
35 }
36
37 # get a named or numbered target.
38 find_target() {
39 local target=${1}
40
41 if is_number "${target}" && [[ ${target} -ge 1 ]] ; then
42 targets=( $(find_targets ) )
43 [[ -z "${targets}" ]] && die -q "No targets found!"
44 target=${targets[target-1]}
45 fi
46
47 if [[ "${target}" = mvn-[0-9]* ]] && [[ -f "${EROOT}/usr/bin/${target}" ]] ; then
48 echo ${target}
49 else
50 die -q "Target \"${1}\" doesn't appear to be valid!"
51 fi
52 }
53
54 # try to remove the mvn symlink.
55 remove_symlink() {
56 rm "${MVN}" &>/dev/null
57 }
58
59 # determine the current target.
60 get_target() {
61 local canonicalised=$(canonicalise "${MVN}")
62 echo $(basename "${canonicalised}")
63 }
64
65 # set the Maven symlink.
66 set_symlink() {
67 local target=$(find_target "${1}")
68 remove_symlink
69 ln -s "${target}" "${MVN}" || die "Couldn't set ${target} symlink."
70 }
71
72 ### show action ###
73
74 describe_show() {
75 echo "Show current Maven target"
76 }
77
78 do_show() {
79 if [[ ${#} -gt 0 ]]; then
80 die -q "No parameters allowed."
81 fi
82
83 if [[ -L "${MVN}" ]] ; then
84 get_target
85 return 0
86 elif [[ -e "${MVN}" ]] ; then
87 echo "(not a symlink)" >&2
88 return 1
89 else
90 echo "(unset)" >&2
91 return 1
92 fi
93 }
94
95 ### list action ###
96
97 describe_list() {
98 echo "List available Maven targets"
99 }
100
101 do_list() {
102 if [[ ${#} -gt 0 ]]; then
103 die -q "Usage error: no parameters allowed."
104 fi
105
106 local i targets
107 targets=( $(find_targets) )
108
109 for (( i = 0; i < ${#targets[@]}; i++ )); do
110 [[ ${targets[i]} = $(basename "$(canonicalise "${MVN}")") ]] \
111 && targets[i]=$(highlight_marker "${targets[i]}")
112 done
113
114 write_list_start "Available Maven targets:"
115 write_numbered_list -m "(none found)" "${targets[@]}"
116 }
117
118 ### set action ###
119
120 describe_set() {
121 echo "Set a new Maven target"
122 }
123
124 describe_set_options() {
125 echo "target : Target name or number (from 'list' action)"
126 }
127
128 describe_set_parameters() {
129 echo "<target>"
130 }
131
132 do_set() {
133 if [[ $# -gt 1 ]]; then
134 die -q "Too many parameters. Expected only one."
135 fi
136
137 local target=${1}
138
139 if [[ -z "${target}" ]] ; then
140 die -q "You didn't give me a target name or number."
141 elif [[ -L "${MVN}" ]] ; then
142 if ! remove_symlink ; then
143 die -q "Can't remove existing Maven provider."
144 elif ! set_symlink "${1}" ; then
145 die -q "Can't set new Maven provider."
146 fi
147 elif [[ -e "${MVN}" ]] ; then
148 write_warning_msg "Can't set a new Maven provider. There's a file in the way at ${MVN}. You can try removing it manually, and then re-running this command."
149 else
150 set_symlink "${target}" || die -q "Wasn't able to set a new provider."
151 fi
152 }
153
154 ### update action ###
155
156 describe_update() {
157 echo "Set the Maven target to the latest if the current target is invalid or if the given target is the latest"
158 }
159
160 describe_update_options() {
161 echo "target (optional) : Target name (from 'list' action)"
162 }
163
164 describe_update_parameters() {
165 echo "<target>"
166 }
167
168 do_update() {
169 if [[ $# -gt 1 ]] ; then
170 die -q "Too many parameters. Expected only one."
171 fi
172
173 # For pkg_postrm
174 if [[ ! $(find_targets) ]]; then
175 remove_symlink
176 return
177 fi
178
179 local canonicalised=$(canonicalise "${MVN}")
180
181 if [[ ! -L "${MVN}" ]] || [[ ! -f "${canonicalised}" ]] ; then
182 do_set 1
183 elif [[ -n "${1}" ]] ; then
184 # Check whether target name is valid.
185 find_target "${1}" > /dev/null
186
187 if [[ "${1}" == "$(find_target 1)" ]] ; then
188 do_set 1
189 fi
190 fi
191 }