diff options
author | George Shapovalov <george@gentoo.org> | 2007-05-25 13:26:01 +0000 |
---|---|---|
committer | George Shapovalov <george@gentoo.org> | 2007-05-25 13:26:01 +0000 |
commit | 6fa7d88d2a9b9744f83f60307d27536cb4eb19ae (patch) | |
tree | 548dd1501ce478ce00e24ede5b3d6665d162e6fc /app-admin/eselect-gnat/files | |
parent | Add ~x86-fbsd (diff) | |
download | gentoo-2-6fa7d88d2a9b9744f83f60307d27536cb4eb19ae.tar.gz gentoo-2-6fa7d88d2a9b9744f83f60307d27536cb4eb19ae.tar.bz2 gentoo-2-6fa7d88d2a9b9744f83f60307d27536cb4eb19ae.zip |
removed old versions
(Portage version: 2.1.2.7)
Diffstat (limited to 'app-admin/eselect-gnat/files')
-rw-r--r-- | app-admin/eselect-gnat/files/digest-eselect-gnat-0.7 | 0 | ||||
-rw-r--r-- | app-admin/eselect-gnat/files/digest-eselect-gnat-0.8 | 0 | ||||
-rw-r--r-- | app-admin/eselect-gnat/files/digest-eselect-gnat-0.8-r1 | 0 | ||||
-rw-r--r-- | app-admin/eselect-gnat/files/gnat.eselect-0.7 | 293 | ||||
-rw-r--r-- | app-admin/eselect-gnat/files/gnat.eselect-0.8 | 295 | ||||
-rw-r--r-- | app-admin/eselect-gnat/files/gnat.eselect-0.8-r1 | 299 |
6 files changed, 0 insertions, 887 deletions
diff --git a/app-admin/eselect-gnat/files/digest-eselect-gnat-0.7 b/app-admin/eselect-gnat/files/digest-eselect-gnat-0.7 deleted file mode 100644 index e69de29bb2d1..000000000000 --- a/app-admin/eselect-gnat/files/digest-eselect-gnat-0.7 +++ /dev/null diff --git a/app-admin/eselect-gnat/files/digest-eselect-gnat-0.8 b/app-admin/eselect-gnat/files/digest-eselect-gnat-0.8 deleted file mode 100644 index e69de29bb2d1..000000000000 --- a/app-admin/eselect-gnat/files/digest-eselect-gnat-0.8 +++ /dev/null diff --git a/app-admin/eselect-gnat/files/digest-eselect-gnat-0.8-r1 b/app-admin/eselect-gnat/files/digest-eselect-gnat-0.8-r1 deleted file mode 100644 index e69de29bb2d1..000000000000 --- a/app-admin/eselect-gnat/files/digest-eselect-gnat-0.8-r1 +++ /dev/null diff --git a/app-admin/eselect-gnat/files/gnat.eselect-0.7 b/app-admin/eselect-gnat/files/gnat.eselect-0.7 deleted file mode 100644 index c61833edc826..000000000000 --- a/app-admin/eselect-gnat/files/gnat.eselect-0.7 +++ /dev/null @@ -1,293 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id: gnat.eselect-0.7,v 1.3 2006/05/02 15:47:50 george Exp $ - -DESCRIPTION="Manage the talled gnat compilers" -MAINTAINER="ada@gentoo.org" -SVN_DATE='$Date: 2006/05/02 15:47:50 $' -VERSION=$(svn_date_to_version "${SVN_DATE}" ) - -SPECSDIR="/usr/share/gnat/eselect" -ENVDIR="/etc/env.d" -MARKER="55gnat-" -#LibMarker="56" - -### Phylosophy -# Each gnat installs a "specs" file named ${ARCH}-${PN}-${SLOT} under ${SPECSDIR} -# Each lib creates a dir with its name under ${SPECSDIR} and populates it with -# similar specs files (same name scheme) -# Recognizing gnat specs from lib specs is then eazy - test entry for being a -# dir, then just check what gnat profiles are installed for each lib.. -# doset then creates env file that combines settings for gnat and for the -# corresponding profile of each installed lib.. - - -### 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() { - [ ! -d ${SPECSDIR} ] && exit - for fn in ${SPECSDIR}/*; do - [ ! -d ${fn} ] && echo $(basename ${fn}); - done -} - -# find installed libs and return a list -find_all_libs() { - [ ! -d ${SPECSDIR} ] && exit - for fn in ${SPECSDIR}/*; do - [ -d ${fn} ] && echo $(basename ${fn}); - done -} - -# find libs that have been built for a given profile -# Arguments: -# $1 - gnat profile for which to detect active libs -find_libs4profile() { - libs=( $(find_all_libs) ) - - for (( i = 0 ; i < ${#libs[@]} ; i = i + 1 )) ; do - [ -f ${SPECSDIR}/${libs[$i]}/$1 ] && echo "${libs[$i]}" - 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 -e "^ *$2=" $1|cut -d= -f2) - echo ${var} -} - - -# Cycle through given libs and form a : separated list of settings for the given -# var. Returned string starts with ":" if there is any non-empty setting, -# otherwise returns empty string -# params: -# $1 - list of libs to check (to avoid its composition every time) -# $2 - name of gnat profile -# $3 - name of env var to process -get_lib_var_settings() { - local libList=$1 - #echo "get_lib_var_settings: ${libList[@]}" >> rep.rep - if [[ ! ${libList[0]} == "none" ]]; then - - local envString - for (( i = 0 ; i < ${#libList[@]} ; i = i + 1 )) ; do - #echo "lib $i = ${libList[$i]}" >> rep.rep - specLine=$(get_var_from_spec ${SPECSDIR}/${libList[$i]}/$2 $3) - [[ -n ${specLine} ]] && envString="${envString}:${specLine}" - done - echo "${envString}" - fi -} - - -# removes env files (for compiler and libs) -# params: -# $1: the name of profile for which to remove env file -unset_env() { - rm -f ${ENVDIR}/${MARKER}$1 &> /dev/null -} - - -# Stuff common for do_set and do_update -# -# params: -# $1 - profile to set (toset param inside) -# $2 - envfile - -generate_envFile() { - local toset=$1 - local envfile=$2 - - local binpath="$(get_var_from_spec ${SPECSDIR}/${toset} binpath)" - local libexecpath="$(get_var_from_spec ${SPECSDIR}/${toset} libexecpath)" - local libs=( $(find_libs4profile ${toset}) ) - if (( 0 == ${#libs[@]} )); then - libs="none" - fi - - echo "PATH=${binpath}:${libexecpath}$(get_lib_var_settings ${libs} ${toset} "PATH")" > "${envfile}" - echo "MANPATH=$(get_var_from_spec ${SPECSDIR}/${toset} manpath)$(get_lib_var_settings ${libs} ${toset} "MANPATH")" >> "${envfile}" - echo "INFOPATH=$(get_var_from_spec ${SPECSDIR}/${toset} infopath)$(get_lib_var_settings ${libs} ${toset} "INFOPATH")" >> "${envfile}" - echo "ADA_INCLUDE_PATH=$(get_var_from_spec ${SPECSDIR}/${toset} ldpath)/adainclude$(get_lib_var_settings ${libs} ${toset} "ADA_INCLUDE_PATH")" >> "${envfile}" - echo "ADA_OBJECTS_PATH=$(get_var_from_spec ${SPECSDIR}/${toset} ldpath)/adalib$(get_lib_var_settings ${libs} ${toset} "ADA_OBJECTS_PATH")" >> "${envfile}" -} - -### show action ### - -describe_show() { - echo "Show the active gnat compiler/profile and installed libs" -} - -do_show() { - write_list_start "Current gnat version:" - active=$(get_current_gnat) - if [ ! -z ${active} ] ; then # not sure why [ -n ] does not do the same - write_kv_list_entry "$active" "" - libs=( $(find_libs4profile ${active}) ) - write_list_start "Active libs:" - write_numbered_list "${libs[@]}" - else - write_kv_list_entry "(none set)" "" - fi -} - -### list action ### - -describe_list() { - echo "List installed gnat compilers and libs" -} - -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[@]}" - - # now the libs - libs=( $(find_all_libs) ) - write_list_start "Installed libs:" - for (( i = 0 ; i < ${#libs[@]} ; i = i + 1 )) ; do - [ -f ${SPECSDIR}/${libs[$i]}/${active} ] && \ - libs[${i}]="${libs[${i}]} $(highlight '*' )" - done - write_numbered_list "${libs[@]}" - else - write_kv_list_entry "(none found)" "" - fi -} - - -### set action ### - -describe_set() { - echo "Set active gnat compiler" -} - -# The set action. Parameters: -# $1 - name of profile to set, obligatory, passed by eselect -# $2 - optional, name of env file to generate. Used from gnat.eclass. -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) - if [[ -z ${2} ]] ; then - 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 - if [[ -n ${active} ]] ; then - unset_env ${active} - fi - # just for a good measure remove the one we are going to write - unset_env ${toset} - else - local envfile="$2" - fi - - generate_envFile ${toset} ${envfile} -} - - - -### update action ### -# -# This action regenerates the /etc/env.d file for the current profile. Basically -# the same as set, only it does not take any parameters. It should be called from ebuilds -# installing Ada libs - -describe_update() { - echo "Update active gnat profile picking up new libs." -} - -do_update() { - local toset=$(get_current_gnat) - local envfile="${ENVDIR}/${MARKER}${toset}" - generate_envFile ${toset} ${envfile} -} - -### unset action ### - -describe_unset() { - echo "Remove settings for currently active gnat" -} - -do_unset() { - local active=$(get_current_gnat) - # check whether we have any profile set before removing anything.. - if [[ -n ${active} ]] ; then - unset_env ${active} - fi -} diff --git a/app-admin/eselect-gnat/files/gnat.eselect-0.8 b/app-admin/eselect-gnat/files/gnat.eselect-0.8 deleted file mode 100644 index 80ea8aef01b5..000000000000 --- a/app-admin/eselect-gnat/files/gnat.eselect-0.8 +++ /dev/null @@ -1,295 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id: gnat.eselect-0.8,v 1.1 2006/05/12 13:28:41 george Exp $ - -DESCRIPTION="Manage the talled gnat compilers" -MAINTAINER="ada@gentoo.org" -SVN_DATE='$Date: 2006/05/12 13:28:41 $' -VERSION=$(svn_date_to_version "${SVN_DATE}" ) - -SPECSDIR="/usr/share/gnat/eselect" -ENVDIR="/etc/env.d" -MARKER="55gnat-" -#LibMarker="56" - -### Phylosophy -# Each gnat installs a "specs" file named ${ARCH}-${PN}-${SLOT} under ${SPECSDIR} -# Each lib creates a dir with its name under ${SPECSDIR} and populates it with -# similar specs files (same name scheme) -# Recognizing gnat specs from lib specs is then eazy - test entry for being a -# dir, then just check what gnat profiles are installed for each lib.. -# doset then creates env file that combines settings for gnat and for the -# corresponding profile of each installed lib.. - - -### 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() { - [ ! -d ${SPECSDIR} ] && exit - for fn in ${SPECSDIR}/*; do - [ ! -d ${fn} ] && echo $(basename ${fn}); - done -} - -# find installed libs and return a list -find_all_libs() { - [ ! -d ${SPECSDIR} ] && exit - for fn in ${SPECSDIR}/*; do - [ -d ${fn} ] && echo $(basename ${fn}); - done -} - -# find libs that have been built for a given profile -# Arguments: -# $1 - gnat profile for which to detect active libs -find_libs4profile() { - libs=( $(find_all_libs) ) - - for (( i = 0 ; i < ${#libs[@]} ; i = i + 1 )) ; do - [ -f ${SPECSDIR}/${libs[$i]}/$1 ] && echo "${libs[$i]}" - 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 -e "^ *$2=" $1|cut -d= -f2) - echo ${var} -} - - -# Cycle through given libs and form a : separated list of settings for the given -# var. Returned string starts with ":" if there is any non-empty setting, -# otherwise returns empty string -# params: -# $1 - list of libs to check (to avoid its composition every time) -# $2 - name of gnat profile -# $3 - name of env var to process -get_lib_var_settings() { - local libList=$1 - #echo "get_lib_var_settings: ${libList[@]}" >> rep.rep - if [[ ! ${libList[0]} == "none" ]]; then - - local envString - for (( i = 0 ; i < ${#libList[@]} ; i = i + 1 )) ; do - #echo "lib $i = ${libList[$i]}" >> rep.rep - specLine=$(get_var_from_spec ${SPECSDIR}/${libList[$i]}/$2 $3) - [[ -n ${specLine} ]] && envString="${envString}:${specLine}" - done - echo "${envString}" - fi -} - - -# removes env files (for compiler and libs) -# params: -# $1: the name of profile for which to remove env file -unset_env() { - rm -f ${ENVDIR}/${MARKER}$1 &> /dev/null -} - - -# Stuff common for do_set and do_update -# -# params: -# $1 - profile to set (toset param inside) -# $2 - envfile - -generate_envFile() { - local toset=$1 - local envfile=$2 - - local binpath="$(get_var_from_spec ${SPECSDIR}/${toset} binpath)" - local libexecpath="$(get_var_from_spec ${SPECSDIR}/${toset} libexecpath)" - local libs=( $(find_libs4profile ${toset}) ) - if (( 0 == ${#libs[@]} )); then - libs="none" - fi - - local MyPath="${binpath}:${libexecpath}$(get_lib_var_settings ${libs} ${toset} PATH)" - echo "PATH=${MyPath}" > "${envfile}" - echo "ROOTPATH=${MyPath}" >> "${envfile}" - echo "MANPATH=$(get_var_from_spec ${SPECSDIR}/${toset} manpath)$(get_lib_var_settings ${libs} ${toset} MANPATH)" >> "${envfile}" - echo "INFOPATH=$(get_var_from_spec ${SPECSDIR}/${toset} infopath)$(get_lib_var_settings ${libs} ${toset} INFOPATH)" >> "${envfile}" - echo "ADA_INCLUDE_PATH=$(get_var_from_spec ${SPECSDIR}/${toset} ldpath)/adainclude$(get_lib_var_settings ${libs} ${toset} ADA_INCLUDE_PATH)" >> "${envfile}" - echo "ADA_OBJECTS_PATH=$(get_var_from_spec ${SPECSDIR}/${toset} ldpath)/adalib$(get_lib_var_settings ${libs} ${toset} ADA_OBJECTS_PATH)" >> "${envfile}" -} - -### show action ### - -describe_show() { - echo "Show the active gnat compiler/profile and installed libs" -} - -do_show() { - write_list_start "Current gnat version:" - active=$(get_current_gnat) - if [ ! -z ${active} ] ; then # not sure why [ -n ] does not do the same - write_kv_list_entry "$active" "" - libs=( $(find_libs4profile ${active}) ) - write_list_start "Active libs:" - write_numbered_list "${libs[@]}" - else - write_kv_list_entry "(none set)" "" - fi -} - -### list action ### - -describe_list() { - echo "List installed gnat compilers and libs" -} - -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[@]}" - - # now the libs - libs=( $(find_all_libs) ) - write_list_start "Installed libs:" - for (( i = 0 ; i < ${#libs[@]} ; i = i + 1 )) ; do - [ -f ${SPECSDIR}/${libs[$i]}/${active} ] && \ - libs[${i}]="${libs[${i}]} $(highlight '*' )" - done - write_numbered_list "${libs[@]}" - else - write_kv_list_entry "(none found)" "" - fi -} - - -### set action ### - -describe_set() { - echo "Set active gnat compiler" -} - -# The set action. Parameters: -# $1 - name of profile to set, obligatory, passed by eselect -# $2 - optional, name of env file to generate. Used from gnat.eclass. -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) - if [[ -z ${2} ]] ; then - 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 - if [[ -n ${active} ]] ; then - unset_env ${active} - fi - # just for a good measure remove the one we are going to write - unset_env ${toset} - else - local envfile="$2" - fi - - generate_envFile ${toset} ${envfile} -} - - - -### update action ### -# -# This action regenerates the /etc/env.d file for the current profile. Basically -# the same as set, only it does not take any parameters. It should be called from ebuilds -# installing Ada libs - -describe_update() { - echo "Update active gnat profile picking up new libs." -} - -do_update() { - local toset=$(get_current_gnat) - local envfile="${ENVDIR}/${MARKER}${toset}" - generate_envFile ${toset} ${envfile} -} - -### unset action ### - -describe_unset() { - echo "Remove settings for currently active gnat" -} - -do_unset() { - local active=$(get_current_gnat) - # check whether we have any profile set before removing anything.. - if [[ -n ${active} ]] ; then - unset_env ${active} - fi -} diff --git a/app-admin/eselect-gnat/files/gnat.eselect-0.8-r1 b/app-admin/eselect-gnat/files/gnat.eselect-0.8-r1 deleted file mode 100644 index 6ebb3a31e120..000000000000 --- a/app-admin/eselect-gnat/files/gnat.eselect-0.8-r1 +++ /dev/null @@ -1,299 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id: gnat.eselect-0.8-r1,v 1.1 2006/05/17 21:28:25 george Exp $ - -DESCRIPTION="Manage the talled gnat compilers" -MAINTAINER="ada@gentoo.org" -SVN_DATE='$Date: 2006/05/17 21:28:25 $' -VERSION=$(svn_date_to_version "${SVN_DATE}" ) - -SPECSDIR="/usr/share/gnat/eselect" -ENVDIR="/etc/env.d" -MARKER="55gnat-" -#LibMarker="56" - -### Phylosophy -# Each gnat installs a "specs" file named ${ARCH}-${PN}-${SLOT} under ${SPECSDIR} -# Each lib creates a dir with its name under ${SPECSDIR} and populates it with -# similar specs files (same name scheme) -# Recognizing gnat specs from lib specs is then eazy - test entry for being a -# dir, then just check what gnat profiles are installed for each lib.. -# doset then creates env file that combines settings for gnat and for the -# corresponding profile of each installed lib.. - - -### 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() { - [ ! -d ${SPECSDIR} ] && exit - for fn in ${SPECSDIR}/*; do - [ ! -d ${fn} ] && echo $(basename ${fn}); - done -} - -# find installed libs and return a list -find_all_libs() { - [ ! -d ${SPECSDIR} ] && exit - for fn in ${SPECSDIR}/*; do - [ -d ${fn} ] && echo $(basename ${fn}); - done -} - -# find libs that have been built for a given profile -# Arguments: -# $1 - gnat profile for which to detect active libs -find_libs4profile() { - libs=( $(find_all_libs) ) - - for (( i = 0 ; i < ${#libs[@]} ; i = i + 1 )) ; do - [ -f ${SPECSDIR}/${libs[$i]}/$1 ] && echo "${libs[$i]}" - 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 -e "^ *$2=" $1|cut -d= -f2) - echo ${var} -} - - -# Cycle through given libs and form a : separated list of settings for the given -# var. Returned string starts with ":" if there is any non-empty setting, -# otherwise returns empty string -# params: -# $1 - name of env var to process -# $2 - name of gnat profile -# $3.. - list of libs to check (to avoid its composition every time) -# - the list is expanded to lest of args at the point of call -get_lib_var_settings() { - local envVar=$1 - local toset=$2 - #echo "get_lib_var_settings params:$@" >> /tmp/eselect-gnat.rep - if [[ "none" != ${3} ]]; then - local envString - local specLine - while [[ -n $3 ]]; do - specLine=$(get_var_from_spec ${SPECSDIR}/$3/${toset} ${envVar}) - #echo "$3:${specLine}." >> /tmp/eselect-gnat.rep - [[ -n ${specLine} ]] && envString="${envString}:${specLine}" - shift - done - echo "${envString}" - fi -} - - -# removes env files (for compiler and libs) -# params: -# $1: the name of profile for which to remove env file -unset_env() { - rm -f ${ENVDIR}/${MARKER}$1 &> /dev/null -} - - -# Stuff common for do_set and do_update -# -# params: -# $1 - profile to set (toset param inside) -# $2 - envfile - -generate_envFile() { - local toset=$1 - local envfile=$2 - - local binpath="$(get_var_from_spec ${SPECSDIR}/${toset} binpath)" - local libexecpath="$(get_var_from_spec ${SPECSDIR}/${toset} libexecpath)" - local libs=( $(find_libs4profile ${toset}) ) - #echo "generate_envFile: ${libs[@]}" >> /tmp/eselect-gnat.rep - if (( 0 == ${#libs[@]} )); then - libs="none" - fi - - local MyPath="${binpath}:${libexecpath}$(get_lib_var_settings PATH ${toset} ${libs[@]})" - echo "PATH=${MyPath}" > "${envfile}" - echo "ROOTPATH=${MyPath}" >> "${envfile}" - echo "MANPATH=$(get_var_from_spec ${SPECSDIR}/${toset} manpath)$(get_lib_var_settings MANPATH ${toset} ${libs[@]})" >> "${envfile}" - echo "INFOPATH=$(get_var_from_spec ${SPECSDIR}/${toset} infopath)$(get_lib_var_settings INFOPATH ${toset} ${libs[@]})" >> "${envfile}" - echo "ADA_INCLUDE_PATH=$(get_var_from_spec ${SPECSDIR}/${toset} ldpath)/adainclude$(get_lib_var_settings ADA_INCLUDE_PATH ${toset} ${libs[@]})" >> "${envfile}" - echo "ADA_OBJECTS_PATH=$(get_var_from_spec ${SPECSDIR}/${toset} ldpath)/adalib$(get_lib_var_settings ADA_OBJECTS_PATH ${toset} ${libs[@]})" >> "${envfile}" -} - -### show action ### - -describe_show() { - echo "Show the active gnat compiler/profile and installed libs" -} - -do_show() { - write_list_start "Current gnat version:" - active=$(get_current_gnat) - if [ ! -z ${active} ] ; then # not sure why [ -n ] does not do the same - write_kv_list_entry "$active" "" - libs=( $(find_libs4profile ${active}) ) - write_list_start "Active libs:" - write_numbered_list "${libs[@]}" - else - write_kv_list_entry "(none set)" "" - fi -} - -### list action ### - -describe_list() { - echo "List installed gnat compilers and libs" -} - -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[@]}" - - # now the libs - libs=( $(find_all_libs) ) - write_list_start "Installed libs:" - for (( i = 0 ; i < ${#libs[@]} ; i = i + 1 )) ; do - [ -f ${SPECSDIR}/${libs[$i]}/${active} ] && \ - libs[${i}]="${libs[${i}]} $(highlight '*' )" - done - write_numbered_list "${libs[@]}" - else - write_kv_list_entry "(none found)" "" - fi -} - - -### set action ### - -describe_set() { - echo "Set active gnat compiler" -} - -# The set action. Parameters: -# $1 - name of profile to set, obligatory, passed by eselect -# $2 - optional, name of env file to generate. Used from gnat.eclass. -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) - if [[ -z ${2} ]] ; then - 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 - if [[ -n ${active} ]] ; then - unset_env ${active} - fi - # just for a good measure remove the one we are going to write - unset_env ${toset} - else - local envfile="$2" - fi - - generate_envFile ${toset} ${envfile} -} - - - -### update action ### -# -# This action regenerates the /etc/env.d file for the current profile. Basically -# the same as set, only it does not take any parameters. It should be called from ebuilds -# installing Ada libs - -describe_update() { - echo "Update active gnat profile picking up new libs." -} - -do_update() { - local toset=$(get_current_gnat) - local envfile="${ENVDIR}/${MARKER}${toset}" - generate_envFile ${toset} ${envfile} -} - -### unset action ### - -describe_unset() { - echo "Remove settings for currently active gnat" -} - -do_unset() { - local active=$(get_current_gnat) - # check whether we have any profile set before removing anything.. - if [[ -n ${active} ]] ; then - unset_env ${active} - fi -} |