From bff9f334ffc91c14d2fe4ef9f87c568937e4225c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 28 Sep 2013 18:47:58 +0200 Subject: [PATCH] udevil: add mounthelper script Signed-off-by: Stephan Raue --- packages/sysutils/udevil/package.mk | 3 ++ .../sysutils/udevil/scripts/udevil_helper | 41 +++++++++++++++++++ .../udevil/udev.d/95-udevil-mount.rules | 16 ++------ 3 files changed, 47 insertions(+), 13 deletions(-) create mode 100644 packages/sysutils/udevil/scripts/udevil_helper diff --git a/packages/sysutils/udevil/package.mk b/packages/sysutils/udevil/package.mk index 60b97270dd..35944ccab4 100644 --- a/packages/sysutils/udevil/package.mk +++ b/packages/sysutils/udevil/package.mk @@ -49,6 +49,9 @@ post_makeinstall_target() { mkdir -p $INSTALL/etc/udevil cp $PKG_DIR/config/udevil.conf $INSTALL/etc/udevil + mkdir -p $INSTALL/lib/udev + cp $PKG_DIR/scripts/udevil_helper $INSTALL/lib/udev + mkdir -p $INSTALL/usr/bin cp -PR src/udevil $INSTALL/usr/bin } diff --git a/packages/sysutils/udevil/scripts/udevil_helper b/packages/sysutils/udevil/scripts/udevil_helper new file mode 100644 index 0000000000..a256fcb7a5 --- /dev/null +++ b/packages/sysutils/udevil/scripts/udevil_helper @@ -0,0 +1,41 @@ +#!/bin/sh +################################################################################ +# 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 +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +case "$ACTION" in + add) + # check hfsplus filesystems + if [ "$ID_FS_TYPE" = "hfsplus" -a -x /bin/fsck.hfsplus ]; then + /bin/fsck.hfsplus -r -y $DEVNAME + fi + udevil --mount $DEVNAME + ;; + + change) + udevil --umount $DEVNAME + udevil --mount $DEVNAME + ;; + + remove) + udevil --umount $DEVNAME + ;; +esac + +exit 0 diff --git a/packages/sysutils/udevil/udev.d/95-udevil-mount.rules b/packages/sysutils/udevil/udev.d/95-udevil-mount.rules index 321f41a491..99c1eda223 100644 --- a/packages/sysutils/udevil/udev.d/95-udevil-mount.rules +++ b/packages/sysutils/udevil/udev.d/95-udevil-mount.rules @@ -4,21 +4,11 @@ ENV{installer}=="1", GOTO="exit" # check for blockdevices, /dev/sd* and /dev/sr* SUBSYSTEM!="block", KERNEL!="sd*|sr*",GOTO="exit" +IMPORT{builtin}="blkid" # /dev/sd* with partitions/disk and filesystems only and /dev/sr* disks only -KERNEL=="sd*", ENV{DEVTYPE}=="partition|disk", ENV{ID_FS_USAGE}=="filesystem", GOTO="harddisk" -KERNEL=="sr*", ENV{DEVTYPE}=="disk", GOTO="optical" -GOTO="exit" - -# mount or umount for hdds -LABEL="harddisk" -ACTION=="add", RUN+="/bin/systemctl restart udevil-mount@/dev/%k.service" -ACTION=="remove", RUN+="/bin/systemctl stop udevil-mount@/dev/%k.service" -GOTO="exit" - -# mount or umount for opticals -LABEL="optical" -ACTION=="add|change", RUN+="/bin/systemctl restart udevil-mount@/dev/%k.service" +KERNEL=="sd*", ENV{DEVTYPE}=="partition|disk", ENV{ID_FS_USAGE}=="filesystem", RUN+="udevil_helper" +KERNEL=="sr*", ENV{DEVTYPE}=="disk", RUN+="udevil_helper" GOTO="exit" # Exit