public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [gentoo-commits] gentoo-x86 commit in app-admin/eselect-maven/files: maven.eselect-1
@ 2010-02-26 17:17 99% Fabian Groffen (grobian)
  0 siblings, 0 replies; 1+ results
From: Fabian Groffen (grobian) @ 2010-02-26 17:17 UTC (permalink / raw
  To: gentoo-commits

grobian     10/02/26 17:17:39

  Added:                maven.eselect-1
  Log:
  Revbump for Prefix fixes, bug #305359
  (Portage version: 2.2.00.15444-prefix/cvs/Darwin powerpc)

Revision  Changes    Path
1.1                  app-admin/eselect-maven/files/maven.eselect-1

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-admin/eselect-maven/files/maven.eselect-1?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-admin/eselect-maven/files/maven.eselect-1?rev=1.1&content-type=text/plain

Index: maven.eselect-1
===================================================================
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id: maven.eselect-1,v 1.1 2010/02/26 17:17:38 grobian Exp $

DESCRIPTION="Manage Maven targets"
MAINTAINER="jieryn@gmail.com"
VERSION="0.1"

MVN="${EROOT}/usr/bin/mvn"

# find a list of mvn symlink targets, best first.
find_targets() {
	for f in $(ls -r "${MVN}"-[0-9]* 2> /dev/null) ; do
		if [[ -f "${f}" ]] ; then
			echo $(basename "${f}")
		fi
	done
}

# get a named or numbered target.
find_target() {
	local target=${1}

	if is_number "${target}" && [[ ${target} -ge 1 ]] ; then
		targets=( $(find_targets ) )
		[[ -z "${targets}" ]] && die -q "No targets found!"
		target=${targets[$(( ${target} - 1 ))]}
	fi

	if [[ "${target}" = mvn-[0-9]* ]] && [[ -f "${EROOT}/usr/bin/${target}" ]] ; then
		echo ${target}
	else
		die -q "Target \"${1}\" doesn't appear to be valid!"
	fi
}

# try to remove the mvn symlink.
remove_symlink() {
	rm "${MVN}" &>/dev/null
}

# determine the current target.
get_target() {
	local canonicalised=$(canonicalise "${MVN}")
	echo $(basename "${canonicalised}")
}

# set the Maven symlink.
set_symlink() {
	local target=$(find_target "${1}")
	remove_symlink
	ln -s "${target}" "${MVN}" || \
		die "Couldn't set ${target} symlink."
}

### show action ###

describe_show() {
	echo "Show current Maven target"
}

do_show() {
	if [[ ${#} -gt 0 ]]; then
		die -q "No parameters allowed."
	fi

	if [[ -L "${MVN}" ]] ; then
		get_target
		return 0
	elif [[ -e "${MVN}" ]] ; then
		echo "(not a symlink)" >&2
		return 1
	else
		echo "(unset)" >&2
		return 1
	fi
}

### list action ###

describe_list() {
	echo "List available Maven targets"
}

do_list() {
	if [[ ${#} -gt 0 ]]; then
		die -q "Usage error: no parameters allowed."
	fi

	local i targets
	targets=( $(find_targets) )

	if [[ -n ${targets[@]} ]] ; then
		local canonicalised basename

		for (( i = 0 ; i < ${#targets[@]} ; i = i + 1 )) ; do
			canonicalised=$(canonicalise "${MVN}")
			basename=$(basename "${canonicalised}")

			if [[ "${targets[${i}]}" = "${basename}" ]] ; then
				targets[${i}]="${targets[${i}]} $(highlight '*')"
			fi
		done

		write_list_start "Available Maven targets:"
		write_numbered_list "${targets[@]}"
	else
		write_kv_list_entry "(none found)" ""
	fi
}

### set action ###

describe_set() {
	echo "Set a new Maven target"
}

describe_set_options() {
	echo "target : Target name or number (from 'list' action)"
}

describe_set_parameters() {
	echo "<target>"
}

do_set() {
	if [[ $# -gt 1 ]]; then
		die -q "Too many parameters. Expected only one."
	fi

	local target=${1}

	if [[ -z "${target}" ]] ; then
		die -q "You didn't give me a target name or number."
	elif [[ -L "${MVN}" ]] ; then
		if ! remove_symlink ; then
			die -q "Can't remove existing Maven provider."
		elif ! set_symlink "${1}" ; then
			die -q "Can't set new Maven provider."
		fi
	elif [[ -e "${MVN}" ]] ; then
		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."
	else
		set_symlink "${target}" || die -q "Wasn't able to set a new provider."
	fi
}

### update action ###

describe_update() {
	echo "Set the Maven target to the latest if the current target is invalid or if the given target is the latest"
}

describe_update_options() {
	echo "target (optional) : Target name (from 'list' action)"
}

describe_update_parameters() {
	echo "<target>"
}

do_update() {
	if [[ $# -gt 1 ]] ; then
		die -q "Too many parameters. Expected only one."
	fi

	# For pkg_postrm
	if [[ ! $(find_targets) ]]; then
		remove_symlink
		return
	fi

	local canonicalised=$(canonicalise "${MVN}")

	if [[ ! -L "${MVN}" ]] || [[ ! -f "${canonicalised}" ]] ; then
		do_set 1
	elif [[ -n "${1}" ]] ; then
		# Check whether target name is valid.
		find_target "${1}" > /dev/null

		if [[ "${1}" == "$(find_target 1)" ]] ; then
			do_set 1
		fi
	fi
}

# vim: set ft=eselect :






^ permalink raw reply	[relevance 99%]

Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2010-02-26 17:17 99% [gentoo-commits] gentoo-x86 commit in app-admin/eselect-maven/files: maven.eselect-1 Fabian Groffen (grobian)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox