From a7fbeeb2c718f2adc9bcf1a209980b8c6859fea6 Mon Sep 17 00:00:00 2001 From: vermaden Date: Wed, 23 Aug 2023 15:29:39 +0200 Subject: [PATCH 1/4] Implement BLACKLIST_REGEX option. Use fusefs-lkl for all ext2/ext3/ext4 mounts. Fix exFAT detection. --- automount | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/automount b/automount index 1f22a38..70761a6 100755 --- a/automount +++ b/automount @@ -125,6 +125,15 @@ BLACKLIST (unset by default) example: BLACKLIST='da0 da3s1a' + +BLACKLIST_REGEX (unset by default) + The boolean flag option complements the above BLACKLIST option + if one wants regex match instead of exact match for ignoring devices. + Below will ignore all partitions ada0p1/ada0p2/... of ada0 device. + + example: BLACKLIST='ada0' + BLACKLIST_REGEX=true + USER (root by default) If set to some username, the mount command will chown(1) the mount directory with the user and @@ -259,11 +268,12 @@ __guess_fs_type() { # 1=DEV # second time guess with file(1) tool with -k option # (do not stop at the first match and keep going) unset FS_TYPE - local FS_TYPE=$( file -k -r -b -L -s ${1} 2> /dev/null | sed -E 's/label:\ \".*\"//g' ) + local FS_TYPE=$( file -k -r -b -L -s ${1} 2> /dev/null | tr '\n' ' ' | sed -E 's/label:\ \".*\"//g' ) case ${FS_TYPE} in - (*Unix\ Fast\ File*) return ${FS_TYPE_UFS} ;; - (*NTFS*) return ${FS_TYPE_NTFS} ;; - (*\ FAT\ *|*MSDOS*) return ${FS_TYPE_FAT} ;; + (*Unix\ Fast\ File*) return ${FS_TYPE_UFS} ;; + (*NTFS*) return ${FS_TYPE_NTFS} ;; + (*ExFAT*) return ${FS_TYPE_EXFAT} ;; + (*\ FAT\ *|*MSDOS*) return ${FS_TYPE_FAT} ;; esac # try with fstyp(8) last (exFAT on UFS issue) unset FS_TYPE @@ -336,7 +346,8 @@ __remove_dir() { # 1=TARGET if [ -d "${1}" ] then sleep 1 - find "${1}" -type d -empty -maxdepth 1 -exec rm -r {} '+' 2> /dev/null + # find "${1}" -type d -empty -maxdepth 1 -exec rm -r {} '+' 2> /dev/null + find "${MNT_PREFIX}" -depth 1 -empty -prune -delete 2> /dev/null fi fi } @@ -479,6 +490,10 @@ case ${2} in then __log "${DEV}: device blocked by BLACKLIST option" exit 0 + elif [ -n "${BLACKLIST_REGEX}" ] && echo ${DEV} | grep -q "${I}" 1> /dev/null 2> /dev/null + then + __log "${DEV}: device blocked by BLACKLIST_REGEX option" + exit 0 fi done fi @@ -536,15 +551,17 @@ case ${2} in FS_CHECK_PORT='sysutils/e2fsprogs' FS_CHECK_CMD='fsck.ext2' FS_CHECK_ARGS="-y" - FS_MOUNT_CMD='mount' - FS_MOUNT_ARGS="-t ext2fs ${OPTS} ${DEV} ${MNT}" + FS_MOUNT_PORT='sysutils/fusefs-lkl' + FS_MOUNT_CMD='lklfuse' + FS_MOUNT_ARGS="-o type=ext2 -o allow_other -o intr -o uid=${UID} -o gid=${GID} -o umask=002 ${DEV} ${MNT}" ;; (${FS_TYPE_EXT3}) FS_CHECK_PORT='sysutils/e2fsprogs' FS_CHECK_CMD='fsck.ext3' FS_CHECK_ARGS="-y" - FS_MOUNT_CMD='mount' - FS_MOUNT_ARGS="-t ext2fs ${OPTS} ${DEV} ${MNT}" + FS_MOUNT_PORT='sysutils/fusefs-lkl' + FS_MOUNT_CMD='lklfuse' + FS_MOUNT_ARGS="-o type=ext3 -o allow_other -o intr -o uid=${UID} -o gid=${GID} -o umask=002 ${DEV} ${MNT}" ;; (${FS_TYPE_EXT4}) FS_CHECK_PORT='sysutils/e2fsprogs' From 6886a7d75aeef09b6bbb22a59e4454f20646e870 Mon Sep 17 00:00:00 2001 From: vermaden Date: Wed, 23 Aug 2023 16:09:59 +0200 Subject: [PATCH 2/4] Fix usage() information. --- automount | 1 - 1 file changed, 1 deletion(-) diff --git a/automount b/automount index 70761a6..85bc8e0 100755 --- a/automount +++ b/automount @@ -35,7 +35,6 @@ UFS/FAT/exFAT/NTFS/EXT2/EXT3/EXT4/MTP/HFS/ISO9660 Add these to mount NTFS/exFAT/EXT4/HFS/XFS/MTP respectively: o sysutils/fusefs-ntfs o sysutils/fusefs-exfat - o sysutils/fusefs-ext4fuse o sysutils/fusefs-hfsfuse o sysutils/fusefs-lkl o sysutils/fusefs-simple-mtpfs From ce51525a2fdcb705b7e1320c9009b56ded9dcb4e Mon Sep 17 00:00:00 2001 From: vermaden Date: Wed, 23 Aug 2023 21:18:39 +0200 Subject: [PATCH 3/4] Update version. Other small fixes. --- automount | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/automount b/automount index 85bc8e0..215a5bb 100755 --- a/automount +++ b/automount @@ -175,7 +175,7 @@ then echo " / / // / // // / // \\\ \ \ \\\ \ \\\ \ \\\ \ \\\ \_ " echo " \_____\\\____/ \__\\\____//__________\\\__\__\__\\\____/ \_____\\\__\__\\\___\ " echo - echo "automount 1.7.9 2022/05/24" + echo "automount 1.7.9 2023/08/23" exit 0 fi @@ -753,6 +753,7 @@ case ${2} in continue fi ( # put entire umount/find/rm block into background + # umount(8) two times to make sure its unmounted umount -f "${TARGET}" 1> /dev/null 2>&1 umount -f "${TARGET}" 1> /dev/null 2>&1 __log "${DEV}: (state) umount '${TARGET}'" @@ -765,6 +766,8 @@ case ${2} in # code for NICENAMES mounting instead of the /dev/${DEV} default if [ "${NICENAMES}" != YES ] then + # umount(8) two times to make sure its unmounted + umount -f "${MNT_PREFIX}/${1}" 1> /dev/null 2>&1 umount -f "${MNT_PREFIX}/${1}" 1> /dev/null 2>&1 __log "${DEV}: (direct) umount '${MNT_PREFIX}/${1}'" __remove_dir "${MNT_PREFIX}/${1}" & From 539a0ac32b50cc4b20427a18e04c4b061bc5da09 Mon Sep 17 00:00:00 2001 From: vermaden Date: Wed, 23 Aug 2023 21:33:21 +0200 Subject: [PATCH 4/4] Upload 1.7.9 version. Update README. --- README | 41 +++++++++++++++++++++++++++++++++-------- automount-1.7.9.tar.gz | Bin 0 -> 7802 bytes 2 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 automount-1.7.9.tar.gz diff --git a/README b/README index eca3ad8..a5981cc 100644 --- a/README +++ b/README @@ -13,6 +13,7 @@ It supports most popular file systems: ------------------------------------------------------------------------------- + I N S T A L L =================== @@ -31,27 +32,49 @@ Now plugin Your USB thumb drive and have fun ;) These ports/packages are needed for all filesystems: -* sysutils/exfat-utils // exFAT +* sysutils/e2fsprogs // EXT2/EXT3/EXT4 fsck(8) +* sysutils/xfsprogs // XFS fsck(8) +* sysutils/exfat-utils // exFAT exfatfsck(8) * sysutils/fusefs-exfat // exFAT * sysutils/fusefs-ntfs // NTFS (read write support) -* sysutils/fusefs-ext2 // EXT4 * sysutils/fusefs-hfsfuse // HFS -* sysutils/fusefs-lkl // XFS +* sysutils/fusefs-lkl // XFS/EXT2/EXT3/EXT4 * sysutils/fusefs-simple-mtpfs // MTP -Regards, -vermaden +All of the above are available as pkg(8) packages. + +Shortcut: + +# pkg install -y \ + sysutils/e2fsprogs \ + sysutils/xfsprogs \ + sysutils/exfat-utils \ + sysutils/fusefs-exfat \ + sysutils/fusefs-ntfs \ + sysutils/fusefs-hfsfuse \ + sysutils/fusefs-lkl \ + sysutils/fusefs-simple-mtpfs ------------------------------------------------------------------------------- + C H A N G E L O G ========================= -------------------------------------------------------------------------------- - -VERSION 1.7.8 (CURRENT) +VERSION 1.7.9 (CURRENT) Fix XORG detection. +Implement proposed BLACKLIST_REGEX option. +Use 'sysutils/fusefs-lkl' for all ext2/ext3/ext4 mounts. +Fix exFAT detection. +Fix small problem with checking the mount state. +Implement better old directory cleanup. + +------------------------------------------------------------------------------- + +VERSION 1.7.8 + +Fix harmless gpart(8) rant about ugen(4) devices. ------------------------------------------------------------------------------- @@ -466,6 +489,8 @@ The only additional configuration it requires is to add these lines as Remember to restart /etc/rc.d/devd daemon after adding /usr/local/etc/devd/automount_devd.conf file. +------------------------------------------------------------------------------ + Have Fun ;) vermaden diff --git a/automount-1.7.9.tar.gz b/automount-1.7.9.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..2eef699e632273386572c87911008bfbcbac87fb GIT binary patch literal 7802 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 MAL_nj8US(t00`JG