aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2009-08-15 11:37:06 +0000
committerUlrich Müller <ulm@gentoo.org>2009-08-15 11:37:06 +0000
commita0945b65eb45dd07e1dd6e01ee5ea4edfab7b2c3 (patch)
tree6c704a997b81e7612af962ec5979f23fee9a1968 /modules/rc.eselect
parentAdd support for Gentoo Alt/Prefix, define EPREFIX and EROOT. (diff)
downloadeselect-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.eselect45
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