summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Shapovalov <george@gentoo.org>2006-01-17 15:18:52 +0000
committerGeorge Shapovalov <george@gentoo.org>2006-01-17 15:18:52 +0000
commit56dfe3d1aa02bb9fbd46e2a3d86ec741006ec9fc (patch)
tree4954fa7c97d9ca9e650768e8b136bf9bbda29e56 /app-admin/eselect-gnat
parentNew snapshot, changed naming scheme to match upstream. Switched from using pr... (diff)
downloadhistorical-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/ChangeLog9
-rw-r--r--app-admin/eselect-gnat/Manifest5
-rw-r--r--app-admin/eselect-gnat/eselect-gnat-0.5.ebuild20
-rw-r--r--app-admin/eselect-gnat/files/digest-eselect-gnat-0.50
-rw-r--r--app-admin/eselect-gnat/files/gnat.eselect175
-rw-r--r--app-admin/eselect-gnat/metadata.xml6
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>