Move _shell_var shell function to shell_var C applet

This commit is contained in:
Roy Marples 2008-01-02 15:38:37 +00:00
parent e5933843e8
commit fadee8e656
6 changed files with 36 additions and 40 deletions

View File

@ -30,21 +30,6 @@ depend() {
use isapnp
}
_shell_var() {
local rem=$1 c= r= var=
while [ -n "${rem}" ]; do
r=${rem#?}
c=${rem%${r}}
case "${c}" in
[a-zA-Z0-9]);;
*) c=_;;
esac
var=${var}${c}
rem=${r}
done
echo ${var}
}
start() {
# Should not fail if kernel do not have module
# support compiled in ...
@ -59,14 +44,14 @@ start() {
local list= x= args= cnt=0
for x in "${KV}" ${KV_MAJOR}.${KV_MINOR}.${KV_MICRO} ${KV_MAJOR}.${KV_MINOR}; do
eval list=\$modules_$(_shell_var "${x}")
eval list=\$modules_$(shell_var "${x}")
[ -n "${list}" ] && break
done
[ -z "${list}" ] && list=${modules}
for x in ${list}; do
ebegin "Loading module ${x}"
eval args=\$module_$(_shell_var "${x}")_args
eval args=\$module_$(shell_var "${x}")_args
eval modprobe -q "${x}" "${args}"
eend $? "Failed to load ${x}" && cnt=$((${cnt} + 1))
done

View File

@ -119,7 +119,7 @@ iwconfig_setup_specific() {
iwconfig_set_mode "${mode}" || return 1
SSIDVAR=$(_shell_var "${SSID}")
SSIDVAR=$(shell_var "${SSID}")
local key=$(iwconfig_get_wep_key)
# Now set the key
@ -140,7 +140,7 @@ iwconfig_associate() {
local mac="$1" channel="$2" caps="$3"
local mode= w="(WEP Disabled)" key=
SSIDVAR=$(_shell_var "${SSID}")
SSIDVAR=$(shell_var "${SSID}")
key=$(iwconfig_get_wep_key "${mac}")
case "${caps}" in
[EI]P*)

View File

@ -165,7 +165,7 @@ iwconfig_setup_specific() {
eerror "adjust the ssid_${IFVAR} setting in /etc/conf.d/net"
return 1
fi
SSIDVAR=$(_shell_var "${SSID}")
SSIDVAR=$(shell_var "${SSID}")
local key=$(iwconfig_get_wep_key)
iwconfig_set_mode "${mode}"
@ -246,7 +246,7 @@ iwconfig_associate() {
iwconfig "${IFACE}" ap any 2>/dev/null
unset SSIDVAR
else
SSIDVAR=$(_shell_var "${SSID}")
SSIDVAR=$(shell_var "${SSID}")
key="$(iwconfig_get_wep_key "${mac}")"
if [ "${wep_required}" = "on" -a "${key}" = "off" ]; then
ewarn "WEP key is not set for \"${SSID}\" - not connecting"

View File

@ -34,24 +34,9 @@ description="Configures network interfaces."
# Handy var so we don't have to embed new lines everywhere for array splitting
__IFS="
"
_shell_var() {
local rem=$1 c= r= var=
while [ -n "${rem}" ]; do
r=${rem#?}
c=${rem%${r}}
case "${c}" in
[a-zA-Z0-9]);;
*) c=_;;
esac
var=${var}${c}
rem=${r}
done
echo ${var}
}
depend() {
local IFACE=${SVCNAME#*.}
local IFVAR=$(_shell_var "${IFACE}")
local IFVAR=$(shell_var "${IFACE}")
need localmount
after bootmisc
@ -454,7 +439,7 @@ _load_config() {
start() {
local IFACE=${SVCNAME#*.} oneworked=false module=
local IFVAR=$(_shell_var "${IFACE}") cmd= our_metric=
local IFVAR=$(shell_var "${IFACE}") cmd= our_metric=
local metric=0
einfo "Bringing up interface ${IFACE}"
@ -629,7 +614,7 @@ ${routes}"
stop() {
local IFACE=${SVCNAME#*.} module=
local IFVAR=$(_shell_var "${IFACE}") opts=
local IFVAR=$(shell_var "${IFACE}") opts=
einfo "Bringing down interface ${IFACE}"
eindent

View File

@ -69,7 +69,8 @@ RC_BINLINKS = einfon einfo ewarnn ewarn eerrorn eerror ebegin eend ewend \
service_inactive service_wasinactive \
service_coldplugged service_started_daemon \
checkpath fstabinfo mountinfo rc-depend \
service_get_value service_set_value get_options save_options
service_get_value service_set_value get_options save_options \
shell_var
RC_SBINLINKS = mark_service_starting mark_service_started \
mark_service_stopping mark_service_stopped \
mark_service_inactive mark_service_wasinactive \

View File

@ -457,6 +457,28 @@ static int do_value (int argc, char **argv)
return (ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
static int do_shell_var (int argc, char **argv)
{
int i;
for (i = 0; i < argc; i++) {
char *p = argv[i];
if (i != 0)
putchar (' ');
while (*p) {
char c = *p++;
if (! isalnum (c))
c = '_';
putchar (c);
}
}
putchar ('\n');
return (EXIT_SUCCESS);
}
#ifdef __linux__
static char *proc_getent (const char *ent)
{
@ -903,6 +925,9 @@ int main (int argc, char **argv)
else if (strcmp (applet, "is_runlevel_stop") == 0)
exit (rc_runlevel_stopping () ? 0 : 1);
if (strcmp (applet, "shell_var") == 0)
exit (do_shell_var (argc, argv));
if (strcmp (applet, "rc-abort") == 0) {
char *p = getenv ("RC_PID");
pid_t pid = 0;