diff options
author | Andreas Müller <schnitzeltony@googlemail.com> | 2012-02-16 02:02:55 +0000 |
---|---|---|
committer | Koen Kooi <koen@dominion.thruhere.net> | 2012-02-23 16:46:30 +0100 |
commit | 9d72ff10c51963513f33ce8dbf42822abf42f6b7 (patch) | |
tree | abb60c1dcdd12b372161254bfc4b726b332889fc /meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl | |
parent | 2b402359f2c743cdf6b6c97a44202ffc043e672a (diff) | |
download | meta-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-x | meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl | 75 |
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 |