diff options
author | George Shapovalov <george@gentoo.org> | 2006-01-17 15:18:52 +0000 |
---|---|---|
committer | George Shapovalov <george@gentoo.org> | 2006-01-17 15:18:52 +0000 |
commit | 56dfe3d1aa02bb9fbd46e2a3d86ec741006ec9fc (patch) | |
tree | 4954fa7c97d9ca9e650768e8b136bf9bbda29e56 /app-admin/eselect-gnat | |
parent | New snapshot, changed naming scheme to match upstream. Switched from using pr... (diff) | |
download | historical-56dfe3d1aa02bb9fbd46e2a3d86ec741006ec9fc.tar.gz historical-56dfe3d1aa02bb9fbd46e2a3d86ec741006ec9fc.tar.bz2 historical-56dfe3d1aa02bb9fbd46e2a3d86ec741006ec9fc.zip |
initial commit. eselect module for the gnat compilers (#111340
Package-Manager: portage-2.1_pre3-r1
Diffstat (limited to 'app-admin/eselect-gnat')
-rw-r--r-- | app-admin/eselect-gnat/ChangeLog | 9 | ||||
-rw-r--r-- | app-admin/eselect-gnat/Manifest | 5 | ||||
-rw-r--r-- | app-admin/eselect-gnat/eselect-gnat-0.5.ebuild | 20 | ||||
-rw-r--r-- | app-admin/eselect-gnat/files/digest-eselect-gnat-0.5 | 0 | ||||
-rw-r--r-- | app-admin/eselect-gnat/files/gnat.eselect | 175 | ||||
-rw-r--r-- | app-admin/eselect-gnat/metadata.xml | 6 |
6 files changed, 215 insertions, 0 deletions
diff --git a/app-admin/eselect-gnat/ChangeLog b/app-admin/eselect-gnat/ChangeLog new file mode 100644 index 000000000000..8fada89e1d71 --- /dev/null +++ b/app-admin/eselect-gnat/ChangeLog @@ -0,0 +1,9 @@ +# ChangeLog for app-admin/eselect-gnat +# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/eselect-gnat/ChangeLog,v 1.1 2006/01/17 15:18:52 george Exp $ + +*eselect-gnat-0.5 (17 Jan 2006) + + 17 Jan 2006; George Shapovalov <george@gentoo.org> +files/gnat.eselect, + +metadata.xml, +eselect-gnat-0.5.ebuild: + initial commit. eselect module for the gnat compilers (#111340) diff --git a/app-admin/eselect-gnat/Manifest b/app-admin/eselect-gnat/Manifest new file mode 100644 index 000000000000..05c087e2c6e2 --- /dev/null +++ b/app-admin/eselect-gnat/Manifest @@ -0,0 +1,5 @@ +MD5 4c2265bc761bc2859c8ac42668a920ee ChangeLog 433 +MD5 cc6de5656c9a32406a8ac1daf4002efe eselect-gnat-0.5.ebuild 532 +MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-eselect-gnat-0.5 0 +MD5 ecea91aed77d42448b0b49491f364f30 files/gnat.eselect 4311 +MD5 92e9934d7cc8cadaa1ca50badb669313 metadata.xml 244 diff --git a/app-admin/eselect-gnat/eselect-gnat-0.5.ebuild b/app-admin/eselect-gnat/eselect-gnat-0.5.ebuild new file mode 100644 index 000000000000..a61174574592 --- /dev/null +++ b/app-admin/eselect-gnat/eselect-gnat-0.5.ebuild @@ -0,0 +1,20 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/eselect-gnat/eselect-gnat-0.5.ebuild,v 1.1 2006/01/17 15:18:52 george Exp $ + +inherit eutils + +DESCRIPTION="gnat module for eselect." +HOMEPAGE="http://www.gentoo.org" +SRC_URI="" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" +DEPEND="app-admin/eselect" + +src_install() { + dodir /usr/share/eselect/modules + insinto /usr/share/eselect/modules + doins ${FILESDIR}/gnat.eselect +} diff --git a/app-admin/eselect-gnat/files/digest-eselect-gnat-0.5 b/app-admin/eselect-gnat/files/digest-eselect-gnat-0.5 new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/app-admin/eselect-gnat/files/digest-eselect-gnat-0.5 diff --git a/app-admin/eselect-gnat/files/gnat.eselect b/app-admin/eselect-gnat/files/gnat.eselect new file mode 100644 index 000000000000..f64ffc55b2a4 --- /dev/null +++ b/app-admin/eselect-gnat/files/gnat.eselect @@ -0,0 +1,175 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id: gnat.eselect,v 1.1 2006/01/17 15:18:52 george Exp $ + +DESCRIPTION="Manage the talled gnat compilers" +MAINTAINER="ada@gentoo.org" +SVN_DATE='$Date: 2006/01/17 15:18:52 $' +VERSION=$(svn_date_to_version "${SVN_DATE}" ) + +SPECSDIR="/etc/eselect/gnat" +ENVDIR="/etc/env.d" +MARKER="55gnat-" + +### Helpers + +# create a list of all gnat env.d files +# for now use trivial implementation - store name of active profile in the +# env file name, so it gets called 55gnat-${ARCH}-${PN}-${SLOT} +get_env_list() { + for fn in ${ENVDIR}/${MARKER}*; do + echo $(basename ${fn}) + done +} + +# return *the* name of the active profile, checking that we do not have multiple +# env files. +# There can be only one! +get_current_gnat() { + local profiles=( $(get_env_list) ) + + if [ ${profiles[@]} == "${MARKER}*" ]; then exit; fi + + if (( 1 == ${#profiles[@]} )); then + local active=${profiles[0]#${MARKER}} + else + die -q "${ENVDIR} contains multiple gnat profiles, please cleanup!" + fi + + if [ -f ${SPECSDIR}/${active} ]; then + echo ${active} + else + die -q "the active env.d profile does not correspond to any installed gnat!" + fi +} + +# find installed compilers and return a list +find_compilers() { + for fn in ${SPECSDIR}/*; do + echo $(basename ${fn}); + done +} + +# check if the passed arg represents the installed gnat and return it or +# not_found +# takes args: +# $1 - list ID to check +get_name_from_list() { + compiler=$1 + + compilers=( $(find_compilers) ) + for (( i = 0 ; i < ${#compilers[@]} ; i = i + 1 )) ; do + if [[ ${compilers[$i]} == ${compiler} ]] ; then + echo ${compiler} + return + fi + done + + echo "(not-found)" +} + + +# extracts values of the passed var definition from given spec file +# params: +# $1: spec file (as generated by gnabuild.eclass) +# $2: variable name +get_var_from_spec() { + local var=$(grep $2 $1|cut -d= -f2) + echo ${var} +} + + +# removes env file +# params: +# $1: the name of profile for which to remove env file +unset_env() { + rm -f ${ENVDIR}/${MARKER}$1 &> /dev/null +} + +### show action ### + +describe_show() { + echo "Show the active gnat compiler/profile" +} + +do_show() { + write_list_start "Current gnat version:" + active=$(get_current_gnat) + [ -z $active ] && active="(none set)" + write_kv_list_entry "$active" "" +} + +### list action ### + +describe_list() { + echo "List installed gnat compilers" +} + +do_list() { + compilers=( $(find_compilers ) ) + active=$(get_current_gnat) + + write_list_start "Available gnat compilers:" + + if [[ -n ${compilers[@]} ]] ; then + local i + for (( i = 0 ; i < ${#compilers[@]} ; i = i + 1 )) ; do + linkversion=${compilers[${i}]} + + [[ $linkversion == $active ]] && \ + compilers[${i}]="${compilers[${i}]} $(highlight '*' )" + done + write_numbered_list "${compilers[@]}" + else + write_kv_list_entry "(none found)" "" + fi +} + +### set action ### + +describe_set() { + echo "Set active gnat compiler" +} + +do_set() { + if [[ -z ${1} ]] ; then + # no parameter + die -q "You didn't tell me which gnat to use" + fi + + local toset=$(get_name_from_list $1) + if [[ ${toset} == "(not-found)" ]] ; then + die -q "I don't recognise the selection" + fi + + # the action! + # in this implementation simply create an appropriate env file + local active=$(get_current_gnat) + local envfile="${ENVDIR}/${MARKER}${toset}" + + # now we need to remove an old env file, which is guaranteed to + # be unique by get_current_gnat above + unset_env ${active} + # just for a good measure remove the one we are going to write + unset_env ${toset} + + local binpath="$(get_var_from_spec ${SPECSDIR}/${toset} binpath)" + local libexecpath="$(get_var_from_spec ${SPECSDIR}/${toset} libexecpath)" + echo "PATH=${binpath}:${libexecpath}" >> "${envfile}" + echo "MANPATH=$(get_var_from_spec ${SPECSDIR}/${toset} manpath)" >> "${envfile}" + echo "INFOPATH=$(get_var_from_spec ${SPECSDIR}/${toset} infopath)" >> "${envfile}" + echo "ADA_INCLUDE_PATH=$(get_var_from_spec ${SPECSDIR}/${toset} ldpath)/adainclude" >> "${envfile}" + echo "ADA_OBJECTS_PATH=$(get_var_from_spec ${SPECSDIR}/${toset} ldpath)/adalib" >> "${envfile}" +} + + +### unset action ### + +describe_unset() { + echo "Remove settings for currently active gnat" +} + +do_unset() { + local active=$(get_current_gnat) + unset_env ${active} +} diff --git a/app-admin/eselect-gnat/metadata.xml b/app-admin/eselect-gnat/metadata.xml new file mode 100644 index 000000000000..3a0ddbad4e34 --- /dev/null +++ b/app-admin/eselect-gnat/metadata.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>ada</herd> +<longdescription>The eselect module for the supported gnat compilers.</longdescription> +</pkgmetadata> |