#!/bin/bash _scl_source_help="Usage: source scl_source [ ...] Don't use this script outside of SCL scriptlets! Options: -h, --help display this help and exit" if [ $# -eq 0 -o $1 = "-h" -o $1 = "--help" ]; then echo "$_scl_source_help" return 0 fi if [ -z "$_recursion" ]; then _recursion="false" fi if [ -z "$_scl_scriptlet_name" ]; then # The only allowed action in the case of recursion is the same # as was the original _scl_scriptlet_name=$1 fi shift 1 if [ -z "$_scl_dir" ]; then # No need to re-define the directory twice _scl_dir=/etc/scl/conf if [ ! -e $_scl_dir ]; then _scl_dir=/etc/scl/prefixes fi fi for arg in "$@"; do _scl_prefix_file=$_scl_dir/$arg _scl_prefix=`cat $_scl_prefix_file 2> /dev/null` if [ $? -ne 0 ]; then echo "Can't read $_scl_prefix_file, $arg is probably not installed." return 1 fi # First check if the collection is already in the list # of collections to be enabled for scl in ${_scls[@]}; do if [ $arg == $scl ]; then continue 2 fi done # Now check if the collection isn't already enabled /usr/bin/scl_enabled $arg > /dev/null 2> /dev/null if [ $? -ne 0 ]; then _scls+=($arg) _scl_prefixes+=($_scl_prefix) fi; done if [ $_recursion == "false" ]; then _i=0 _recursion="true" while [ $_i -lt ${#_scls[@]} ]; do _scl_scriptlet_path="${_scl_prefixes[$_i]}/${_scls[$_i]}/${_scl_scriptlet_name}" source "$_scl_scriptlet_path" if [ $? -ne 0 ]; then echo "Can't source $_scl_scriptlet_name, skipping." else export X_SCLS="${_scls[$_i]} $X_SCLS" fi; _i=$(($_i+1)) done _scls=() _scl_prefixes=() _scl_scriptlet_name="" _recursion="false" fi