Merge "Fix negated services with common prefix"
This commit is contained in:
commit
641dd9ff23
@ -1625,14 +1625,38 @@ function disable_all_services {
|
|||||||
# Uses global ``ENABLED_SERVICES``
|
# Uses global ``ENABLED_SERVICES``
|
||||||
# disable_negated_services
|
# disable_negated_services
|
||||||
function disable_negated_services {
|
function disable_negated_services {
|
||||||
local tmpsvcs="${ENABLED_SERVICES}"
|
local to_remove=""
|
||||||
|
local remaining=""
|
||||||
|
local enabled=""
|
||||||
local service
|
local service
|
||||||
for service in ${tmpsvcs//,/ }; do
|
|
||||||
|
# build up list of services that should be removed; i.e. they
|
||||||
|
# begin with "-"
|
||||||
|
for service in ${ENABLED_SERVICES//,/ }; do
|
||||||
if [[ ${service} == -* ]]; then
|
if [[ ${service} == -* ]]; then
|
||||||
tmpsvcs=$(echo ${tmpsvcs}|sed -r "s/(,)?(-)?${service#-}(,)?/,/g")
|
to_remove+=",${service#-}"
|
||||||
|
else
|
||||||
|
remaining+=",${service}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
ENABLED_SERVICES=$(_cleanup_service_list "$tmpsvcs")
|
|
||||||
|
# go through the service list. if this service appears in the "to
|
||||||
|
# be removed" list, drop it
|
||||||
|
for service in ${remaining//,/ }; do
|
||||||
|
local remove
|
||||||
|
local add=1
|
||||||
|
for remove in ${to_remove//,/ }; do
|
||||||
|
if [[ ${remove} == ${service} ]]; then
|
||||||
|
add=0
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ $add == 1 ]]; then
|
||||||
|
enabled="${enabled},$service"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
ENABLED_SERVICES=$(_cleanup_service_list "$enabled")
|
||||||
}
|
}
|
||||||
|
|
||||||
# disable_service() removes the services passed as argument to the
|
# disable_service() removes the services passed as argument to the
|
||||||
|
@ -127,7 +127,15 @@ test_disable_negated_services 'a,-a' ''
|
|||||||
test_disable_negated_services 'b,a,-a' 'b'
|
test_disable_negated_services 'b,a,-a' 'b'
|
||||||
test_disable_negated_services 'a,b,-a' 'b'
|
test_disable_negated_services 'a,b,-a' 'b'
|
||||||
test_disable_negated_services 'a,-a,b' 'b'
|
test_disable_negated_services 'a,-a,b' 'b'
|
||||||
|
test_disable_negated_services 'a,aa,-a' 'aa'
|
||||||
|
test_disable_negated_services 'aa,-a' 'aa'
|
||||||
|
test_disable_negated_services 'a_a, -a_a' ''
|
||||||
|
test_disable_negated_services 'a-b, -a-b' ''
|
||||||
|
test_disable_negated_services 'a-b, b, -a-b' 'b'
|
||||||
|
test_disable_negated_services 'a,-a,av2,b' 'av2,b'
|
||||||
|
test_disable_negated_services 'a,aa,-a' 'aa'
|
||||||
|
test_disable_negated_services 'a,av2,-a,a' 'av2'
|
||||||
|
test_disable_negated_services 'a,-a,av2' 'av2'
|
||||||
|
|
||||||
echo "Testing is_package_installed()"
|
echo "Testing is_package_installed()"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user