From cbc02056b528952b19d78fbfd40e2ab20452aacf Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 4 Aug 2013 17:47:03 +0200 Subject: [PATCH] udisks: add systemd support Signed-off-by: Stephan Raue --- packages/sysutils/udisks/package.mk | 8 +++- .../udisks-mount-disks} | 43 ++++++++----------- .../system.d/udisks-mount-disks.service | 9 ++++ .../sysutils/udisks/system.d/udisks.service | 8 ++++ .../{31_udisks.conf => udisks.conf} | 0 5 files changed, 41 insertions(+), 27 deletions(-) rename packages/sysutils/udisks/{init.d/31_mount-disks => scripts/udisks-mount-disks} (58%) mode change 100644 => 100755 create mode 100644 packages/sysutils/udisks/system.d/udisks-mount-disks.service create mode 100644 packages/sysutils/udisks/system.d/udisks.service rename packages/sysutils/udisks/tmpfiles.d/{31_udisks.conf => udisks.conf} (100%) diff --git a/packages/sysutils/udisks/package.mk b/packages/sysutils/udisks/package.mk index 31c67651d8..769b9fd08d 100644 --- a/packages/sysutils/udisks/package.mk +++ b/packages/sysutils/udisks/package.mk @@ -48,5 +48,11 @@ PKG_CONFIGURE_OPTS_TARGET="--datadir=/usr/share \ post_makeinstall_target() { rm -rf $INSTALL/etc/profile.d - rm -rf $INSTALL/lib/udev/rules.d + + mkdir -p $INSTALL/lib/systemd + cp -P $PKG_DIR/scripts/udisks-mount-disks $INSTALL/lib/systemd +} + +post_install() { + enable_service udisks-mount-disks.service } diff --git a/packages/sysutils/udisks/init.d/31_mount-disks b/packages/sysutils/udisks/scripts/udisks-mount-disks old mode 100644 new mode 100755 similarity index 58% rename from packages/sysutils/udisks/init.d/31_mount-disks rename to packages/sysutils/udisks/scripts/udisks-mount-disks index 70ee7a72a4..5d533f31ab --- a/packages/sysutils/udisks/init.d/31_mount-disks +++ b/packages/sysutils/udisks/scripts/udisks-mount-disks @@ -1,6 +1,7 @@ +#!/bin/sh ################################################################################ -# Copyright (C) 2009-2010 OpenELEC.tv -# http://www.openelec.tv +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) # # This Program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,32 +19,22 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -# # automount internal disks -# -# runlevels: openelec, textmode -( - progress "automount internal disks" +drive_dump () { + udisks --dump | tr -d ' ' | grep 'device-file:' | cut -d ':' -f2 +} - wait_for_dbus +show_info () { + udisks --show-info $2 | grep "$1:" | tr -d ' ' | cut -d ":" -f2 +} - drive_dump () { - udisks --dump | tr -d ' ' | grep 'device-file:' | cut -d ':' -f2 - } +for DEVICE in `drive_dump`; do + REMOVABLE="`show_info "removable" $DEVICE`" + MOUNTED="`show_info "is mounted" $DEVICE`" + USAGE="`show_info "usage" $DEVICE`" - show_info () { - udisks --show-info $2 | grep "$1:" | tr -d ' ' | cut -d ":" -f2 - } - - for DEVICE in `drive_dump`; do - REMOVABLE="`show_info "removable" $DEVICE`" - MOUNTED="`show_info "is mounted" $DEVICE`" - USAGE="`show_info "usage" $DEVICE`" - - if [ "$REMOVABLE" = "0" -a "$MOUNTED" = "0" -a "$USAGE" = "filesystem" ]; then - udisks --mount "$DEVICE" >/dev/null - fi - - done -)& + if [ "$REMOVABLE" = "0" -a "$MOUNTED" = "0" -a "$USAGE" = "filesystem" ]; then + udisks --mount "$DEVICE" >/dev/null + fi +done diff --git a/packages/sysutils/udisks/system.d/udisks-mount-disks.service b/packages/sysutils/udisks/system.d/udisks-mount-disks.service new file mode 100644 index 0000000000..c942f1572c --- /dev/null +++ b/packages/sysutils/udisks/system.d/udisks-mount-disks.service @@ -0,0 +1,9 @@ +[Unit] +Description=Mount internal disks + +[Service] +ExecStart=/lib/systemd/udisks-mount-disks +Type=oneshot + +[Install] +WantedBy=remote-fs.target diff --git a/packages/sysutils/udisks/system.d/udisks.service b/packages/sysutils/udisks/system.d/udisks.service new file mode 100644 index 0000000000..0fecada41b --- /dev/null +++ b/packages/sysutils/udisks/system.d/udisks.service @@ -0,0 +1,8 @@ +[Unit] +Description=Disk Manager +Documentation=man:udisks(8) + +[Service] +Type=dbus +BusName=org.freedesktop.UDisks +ExecStart=/usr/lib/udisks/udisks-daemon diff --git a/packages/sysutils/udisks/tmpfiles.d/31_udisks.conf b/packages/sysutils/udisks/tmpfiles.d/udisks.conf similarity index 100% rename from packages/sysutils/udisks/tmpfiles.d/31_udisks.conf rename to packages/sysutils/udisks/tmpfiles.d/udisks.conf