aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl
diff options
context:
space:
mode:
authorAndreas Müller <schnitzeltony@googlemail.com>2012-02-16 02:02:55 +0000
committerKoen Kooi <koen@dominion.thruhere.net>2012-02-23 16:46:30 +0100
commit9d72ff10c51963513f33ce8dbf42822abf42f6b7 (patch)
treeabb60c1dcdd12b372161254bfc4b726b332889fc /meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl
parent2b402359f2c743cdf6b6c97a44202ffc043e672a (diff)
downloadmeta-openembedded-9d72ff10c51963513f33ce8dbf42822abf42f6b7.tar.gz
systemd-systemctl-native: add multiple services support
Thanks to Otavio Salvador for helping hint [1] [1] http://lists.linuxtogo.org/pipermail/openembedded-devel/2012-February/037856.html Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Diffstat (limited to 'meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl')
-rwxr-xr-xmeta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl75
1 files changed, 42 insertions, 33 deletions
diff --git a/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl b/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl
index 54c1a18bf3..72b9da3b79 100755
--- a/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl
+++ b/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl
@@ -10,50 +10,59 @@ while [ $# != 0 ]; do
enable)
shift
- service="$1"
+ services="$1"
+ in_enable="1"
shift
;;
--root=*)
ROOT=${opt##--root=}
+ in_enable="0"
shift
;;
*)
- echo "'$opt' is an unkown option; exiting with error"
- exit 1
+ if [ "$in_enable" = "1" ]; then
+ services="$services $opt"
+ shift
+ else
+ echo "'$opt' is an unkown option; exiting with error"
+ exit 1
+ fi
;;
esac
done
-# find service file
-for p in $ROOT/etc/systemd/system \
- $ROOT/lib/systemd/system \
- $ROOT/usr/lib/systemd/system; do
- if [ -e $p/$service ]; then
- service_file=$p/$service
- service_file=${service_file##$ROOT}
+for service in "$services"; do
+ # find service file
+ for p in $ROOT/etc/systemd/system \
+ $ROOT/lib/systemd/system \
+ $ROOT/usr/lib/systemd/system; do
+ if [ -e $p/$service ]; then
+ service_file=$p/$service
+ service_file=${service_file##$ROOT}
+ fi
+ done
+ if [ -z "$service_file" ]; then
+ echo "'$service' couldn't be found; exiting with error"
+ exit 1
fi
-done
-if [ -z "$service_file" ]; then
- echo "'$service' couldn't be found; exiting with error"
- exit 1
-fi
-
-# create the required symbolic links
-wanted_by=$(grep WantedBy $ROOT/$service_file \
- | sed 's,WantedBy=,,g' \
- | tr ',' '\n' \
- | grep '\.target$')
-
-for r in $wanted_by; do
- mkdir -p $ROOT/etc/systemd/system/$r.wants
- ln -s $service_file $ROOT/etc/systemd/system/$r.wants
- echo "Enabled $service for $wanted_by."
-done
-# call us for the other required scripts
-also=$(grep Also $ROOT/$service_file \
- | sed 's,Also=,,g' \
- | tr ',' '\n')
-for a in $also; do
- $0 --root=$ROOT enable $a
+ # create the required symbolic links
+ wanted_by=$(grep WantedBy $ROOT/$service_file \
+ | sed 's,WantedBy=,,g' \
+ | tr ',' '\n' \
+ | grep '\.target$')
+
+ for r in $wanted_by; do
+ mkdir -p $ROOT/etc/systemd/system/$r.wants
+ ln -s $service_file $ROOT/etc/systemd/system/$r.wants
+ echo "Enabled $service for $wanted_by."
+ done
+
+ # call us for the other required scripts
+ also=$(grep Also $ROOT/$service_file \
+ | sed 's,Also=,,g' \
+ | tr ',' '\n')
+ for a in $also; do
+ $0 --root=$ROOT enable $a
+ done
done