Merge branch 'vermaden:master' into master

This commit is contained in:
Eric Turgeon 2023-09-04 08:32:31 -03:00 committed by GitHub
commit 6cecb3de81
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 63 additions and 19 deletions

41
README
View File

@ -13,6 +13,7 @@ It supports most popular file systems:
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
I N S T A L L 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: 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-exfat // exFAT
* sysutils/fusefs-ntfs // NTFS (read write support) * sysutils/fusefs-ntfs // NTFS (read write support)
* sysutils/fusefs-ext2 // EXT4
* sysutils/fusefs-hfsfuse // HFS * sysutils/fusefs-hfsfuse // HFS
* sysutils/fusefs-lkl // XFS * sysutils/fusefs-lkl // XFS/EXT2/EXT3/EXT4
* sysutils/fusefs-simple-mtpfs // MTP * sysutils/fusefs-simple-mtpfs // MTP
Regards, All of the above are available as pkg(8) packages.
vermaden
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 C H A N G E L O G
========================= =========================
------------------------------------------------------------------------------- VERSION 1.7.9 (CURRENT)
VERSION 1.7.8 (CURRENT)
Fix XORG detection. 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 Remember to restart /etc/rc.d/devd daemon after adding
/usr/local/etc/devd/automount_devd.conf file. /usr/local/etc/devd/automount_devd.conf file.
------------------------------------------------------------------------------
Have Fun ;) Have Fun ;)
vermaden vermaden

View File

@ -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: Add these to mount NTFS/exFAT/EXT4/HFS/XFS/MTP respectively:
o sysutils/fusefs-ntfs o sysutils/fusefs-ntfs
o sysutils/fusefs-exfat o sysutils/fusefs-exfat
o sysutils/fusefs-ext4fuse
o sysutils/fusefs-hfsfuse o sysutils/fusefs-hfsfuse
o sysutils/fusefs-lkl o sysutils/fusefs-lkl
o sysutils/fusefs-simple-mtpfs o sysutils/fusefs-simple-mtpfs
@ -125,6 +124,15 @@ BLACKLIST (unset by default)
example: BLACKLIST='da0 da3s1a' 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) USER (root by default)
If set to some username, the mount command will If set to some username, the mount command will
chown(1) the mount directory with the user and chown(1) the mount directory with the user and
@ -167,7 +175,7 @@ then
echo " / / // / // // / // \\\ \ \ \\\ \ \\\ \ \\\ \ \\\ \_ " echo " / / // / // // / // \\\ \ \ \\\ \ \\\ \ \\\ \ \\\ \_ "
echo " \_____\\\____/ \__\\\____//__________\\\__\__\__\\\____/ \_____\\\__\__\\\___\ " echo " \_____\\\____/ \__\\\____//__________\\\__\__\__\\\____/ \_____\\\__\__\\\___\ "
echo echo
echo "automount 1.7.9 2022/05/24" echo "automount 1.7.9 2023/08/23"
exit 0 exit 0
fi fi
@ -259,11 +267,12 @@ __guess_fs_type() { # 1=DEV
# second time guess with file(1) tool with -k option # second time guess with file(1) tool with -k option
# (do not stop at the first match and keep going) # (do not stop at the first match and keep going)
unset FS_TYPE 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 case ${FS_TYPE} in
(*Unix\ Fast\ File*) return ${FS_TYPE_UFS} ;; (*Unix\ Fast\ File*) return ${FS_TYPE_UFS} ;;
(*NTFS*) return ${FS_TYPE_NTFS} ;; (*NTFS*) return ${FS_TYPE_NTFS} ;;
(*\ FAT\ *|*MSDOS*) return ${FS_TYPE_FAT} ;; (*ExFAT*) return ${FS_TYPE_EXFAT} ;;
(*\ FAT\ *|*MSDOS*) return ${FS_TYPE_FAT} ;;
esac esac
# try with fstyp(8) last (exFAT on UFS issue) # try with fstyp(8) last (exFAT on UFS issue)
unset FS_TYPE unset FS_TYPE
@ -336,7 +345,8 @@ __remove_dir() { # 1=TARGET
if [ -d "${1}" ] if [ -d "${1}" ]
then then
sleep 1 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
fi fi
} }
@ -479,6 +489,10 @@ case ${2} in
then then
__log "${DEV}: device blocked by BLACKLIST option" __log "${DEV}: device blocked by BLACKLIST option"
exit 0 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 fi
done done
fi fi
@ -536,15 +550,17 @@ case ${2} in
FS_CHECK_PORT='sysutils/e2fsprogs' FS_CHECK_PORT='sysutils/e2fsprogs'
FS_CHECK_CMD='fsck.ext2' FS_CHECK_CMD='fsck.ext2'
FS_CHECK_ARGS="-y" FS_CHECK_ARGS="-y"
FS_MOUNT_CMD='mount' FS_MOUNT_PORT='sysutils/fusefs-lkl'
FS_MOUNT_ARGS="-t ext2fs ${OPTS} ${DEV} ${MNT}" 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_TYPE_EXT3})
FS_CHECK_PORT='sysutils/e2fsprogs' FS_CHECK_PORT='sysutils/e2fsprogs'
FS_CHECK_CMD='fsck.ext3' FS_CHECK_CMD='fsck.ext3'
FS_CHECK_ARGS="-y" FS_CHECK_ARGS="-y"
FS_MOUNT_CMD='mount' FS_MOUNT_PORT='sysutils/fusefs-lkl'
FS_MOUNT_ARGS="-t ext2fs ${OPTS} ${DEV} ${MNT}" 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_TYPE_EXT4})
FS_CHECK_PORT='sysutils/e2fsprogs' FS_CHECK_PORT='sysutils/e2fsprogs'
@ -737,6 +753,7 @@ case ${2} in
continue continue
fi fi
( # put entire umount/find/rm block into background ( # 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
umount -f "${TARGET}" 1> /dev/null 2>&1 umount -f "${TARGET}" 1> /dev/null 2>&1
__log "${DEV}: (state) umount '${TARGET}'" __log "${DEV}: (state) umount '${TARGET}'"
@ -749,6 +766,8 @@ case ${2} in
# code for NICENAMES mounting instead of the /dev/${DEV} default # code for NICENAMES mounting instead of the /dev/${DEV} default
if [ "${NICENAMES}" != YES ] if [ "${NICENAMES}" != YES ]
then 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 umount -f "${MNT_PREFIX}/${1}" 1> /dev/null 2>&1
__log "${DEV}: (direct) umount '${MNT_PREFIX}/${1}'" __log "${DEV}: (direct) umount '${MNT_PREFIX}/${1}'"
__remove_dir "${MNT_PREFIX}/${1}" & __remove_dir "${MNT_PREFIX}/${1}" &

BIN
automount-1.7.9.tar.gz Normal file

Binary file not shown.