diff options
author | 2009-08-15 11:37:06 +0000 | |
---|---|---|
committer | 2009-08-15 11:37:06 +0000 | |
commit | a0945b65eb45dd07e1dd6e01ee5ea4edfab7b2c3 (patch) | |
tree | 6c704a997b81e7612af962ec5979f23fee9a1968 /modules/rc.eselect | |
parent | Add support for Gentoo Alt/Prefix, define EPREFIX and EROOT. (diff) | |
download | eselect-a0945b65eb45dd07e1dd6e01ee5ea4edfab7b2c3.tar.gz eselect-a0945b65eb45dd07e1dd6e01ee5ea4edfab7b2c3.tar.bz2 eselect-a0945b65eb45dd07e1dd6e01ee5ea4edfab7b2c3.zip |
Prefix support.
svn path=/trunk/; revision=610
Diffstat (limited to 'modules/rc.eselect')
-rw-r--r-- | modules/rc.eselect | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/modules/rc.eselect b/modules/rc.eselect index 84526f1..2ce7d51 100644 --- a/modules/rc.eselect +++ b/modules/rc.eselect @@ -13,7 +13,8 @@ VERSION=$(svn_date_to_version "${SVN_DATE}") # API for OpenRC or baselayout-1 source_rc_functions() { [[ ${RC_GOT_FUNCTIONS} = yes ]] && return - source /etc/init.d/functions.sh || die "Failed to source functions.sh" + source "${EPREFIX}/etc/init.d/functions.sh" \ + || die "Failed to source functions.sh" # baselayout-1 compatibility if [[ -e ${svclib}/sh/rc-services.sh ]]; then source "${svclib}/sh/rc-services.sh" \ @@ -39,7 +40,7 @@ get_runlevel() { list_runlevels() { [[ $# -eq 1 ]] || return local x runlevels - for x in ${ROOT}/etc/runlevels/* ; do + for x in "${EROOT}"/etc/runlevels/* ; do [[ -d ${x} && -L ${x}/${1} ]] \ && runlevels=(${runlevels[@]} "${x##*/}") done @@ -69,8 +70,8 @@ find_scripts() { # find scripts in /etc/init.d not belonging to any runlevel find_unused_scripts() { local file x - for file in $(find_scripts "${ROOT}/etc/init.d"); do - for x in "${ROOT}"/etc/runlevels/*; do + for file in $(find_scripts "${EROOT}/etc/init.d"); do + for x in "${EROOT}"/etc/runlevels/*; do [[ -d ${x} && -L ${x}/${file} ]] && continue 2 done echo "${file##*/}" @@ -107,8 +108,8 @@ run_runscript() { local command=${1} shift for script in "$@"; do - is_script "${ROOT}/etc/init.d/${script}" \ - && /sbin/runscript "${ROOT}/etc/init.d/${script}" "${command}" + is_script "${EROOT}/etc/init.d/${script}" \ + && /sbin/runscript "${EROOT}/etc/init.d/${script}" "${command}" done } @@ -131,22 +132,22 @@ do_add() { [[ $# -gt 0 ]] \ || die -q "Please specify the init script to be added!" local script=${1##*/} - [[ -e ${ROOT}/etc/init.d/${script} ]] \ + [[ -e ${EROOT}/etc/init.d/${script} ]] \ || die -q "Please specify a valid init script!" shift 1 local runlevels=${@:-default} write_list_start "Adding $(highlight ${script}) to following runlevels" for runlevel in ${runlevels} ; do - if [[ ! -d ${ROOT}/etc/runlevels/${runlevel} ]] ; then + if [[ ! -d ${EROOT}/etc/runlevels/${runlevel} ]] ; then write_kv_list_entry ${runlevel} "[invalid]" continue else - if [[ -L ${ROOT}/etc/runlevels/${runlevel}/${script} ]] ; then + if [[ -L ${EROOT}/etc/runlevels/${runlevel}/${script} ]] ; then write_kv_list_entry ${runlevel} "[skipped]" else ln -sf \ - /etc/init.d/${script} \ - ${ROOT}/etc/runlevels/${runlevel}/${script} \ + "${EPREFIX}/etc/init.d/${script}" \ + "${EROOT}/etc/runlevels/${runlevel}/${script}" \ && write_kv_list_entry ${runlevel} "[done]" \ || write_kv_list_entry ${runlevel} "[failed]" fi @@ -174,17 +175,17 @@ do_delete() { || die -q "Please specify the init script to be deleted!" local script=${1##*/} shift 1 - [[ -e ${ROOT}/etc/init.d/${script} ]] || write_warning_msg \ - "Init script not found in /etc/init.d/. Continuing anyway." + [[ -e ${EROOT}/etc/init.d/${script} ]] || write_warning_msg \ + "Init script not found in ${EROOT}/etc/init.d/. Continuing anyway." local runlevels=${@:-default} write_list_start "Deleting $(highlight ${script}) from following runlevels" for runlevel in ${runlevels} ; do - if [[ ! -d ${ROOT}/etc/runlevels/${runlevel} ]] ; then + if [[ ! -d ${EROOT}/etc/runlevels/${runlevel} ]] ; then write_kv_list_entry ${runlevel} "[invalid]" continue else - if [[ -L ${ROOT}/etc/runlevels/${runlevel}/${script} ]] ; then - rm ${ROOT}/etc/runlevels/${runlevel}/${script} \ + if [[ -L ${EROOT}/etc/runlevels/${runlevel}/${script} ]] ; then + rm "${EROOT}/etc/runlevels/${runlevel}/${script}" \ && write_kv_list_entry ${runlevel} "[done]" \ || write_kv_list_entry ${runlevel} "[failed]" else @@ -210,11 +211,11 @@ describe_list_options() { do_list() { local dir file item - if [[ -n ${1} ]] && [[ -d ${ROOT}/etc/runlevels/${1} ]] ; then - dir=${ROOT}/etc/runlevels/${1} + if [[ -n ${1} ]] && [[ -d ${EROOT}/etc/runlevels/${1} ]] ; then + dir=${EROOT}/etc/runlevels/${1} write_list_start "Init scripts to be started by runlevel $(highlight ${1})" elif [[ -z ${1} ]] ; then - dir=${ROOT}/etc/init.d + dir=${EROOT}/etc/init.d write_list_start "Available init scripts" else die -q "${1} is no valid runlevel!" @@ -263,7 +264,7 @@ do_show() { done if [[ -n ${all} ]]; then local runlevels=() - for x in "${ROOT}"/etc/runlevels/*; do + for x in "${EROOT}"/etc/runlevels/*; do [[ -d "${x}" ]] && runlevels=("${runlevels[@]}" "${x##*/}") done set -- "${runlevels[@]}" @@ -271,12 +272,12 @@ do_show() { fi for runlevel in "$@"; do - [[ -n ${runlevel} && -d ${ROOT}/etc/runlevels/${runlevel} ]] \ + [[ -n ${runlevel} && -d ${EROOT}/etc/runlevels/${runlevel} ]] \ || die -q "\"${runlevel}\" is no valid runlevel" write_list_start "Status of init scripts in runlevel \"${runlevel}\"" n=0 - for script in $(find_scripts "${ROOT}/etc/runlevels/${runlevel}"); do + for script in $(find_scripts "${EROOT}/etc/runlevels/${runlevel}"); do show_script_status ${script} ((n++)) done |