Rendez-vous sur Arrakis, Le site perso d'un hacker libriste curieux crêpophile étourdi
Le 11/09/2019 à 14:53 dans /Logiciel-libre/Suckless/dmenu/

dmount/dumout : Gestion des périphériques avec dmenu

dmount

dmount permet de choisir un disque/ une clé USB récemment inséré pour le monter. de définir le délai avant que l'alarme ne “sonne”. Pour pleinement fonctionner, il est nécessaire d'ajouter ces lignes dans /etc/doas.conf :

permit nopass :wheel cmd /sbin/mount
permit nopass :wheel cmd /sbin/disklabel

Pour le configurer, modifiez la variable mountdir. Par défaut, un dossier est créé dans votre répertoire personnel avec le nom $HOME/media/sdnx.

apercu de dmount

apercu 2 de dmount

#!/bin/sh
# detect recently insterted media
# look for slice
# choose the one to mount with dmenu.
# mount the partition in $mountdir/sdnm 
#     where "n" is the disk and "m" the slice

# doas.conf : 
#permit nopass :wheel cmd /sbin/mount
#permit nopass :wheel cmd /sbin/disklabel

# change "mountdir" according to your needs
mountdir=$HOME/media/

test -s $HOME/.dmenurc && . $HOME/.dmenurc
P="mount:"
OPTION="-sb ${sb} -sf ${sf} -nb ${nb} -nf ${nf} -fn ${fn} -p $P -l $l"

sdn="$(dmesg | \
    grep -E 'sd[0-9]+ .*serial\..*' |\
    dmenu -l ${l} \
        -fn ${fn} \
        -nb ${nb} \
        -nf ${nf} \
        -sb ${sb} \
        -sf ${sf} \
        -p 'disk ?'|\
    cut -d' ' -f1)"

test -z "${sdn}" && exit 1

slice="$(doas /sbin/disklabel ${sdn} |\
    grep -E '^  ' |\
    tr -d ' ' |\
    cut -d':' -f1 |\
    sed -e 's/c//' |\
    dmenu -l ${l} \
        -fn ${fn} \
        -nb ${nb} \
        -nf ${nf} \
        -sb ${sb} \
        -sf ${sf} \
        -p 'slice ?')"
test -z "${slice}" && exit 1

partition="${sdn}${slice}"
mntpt="${mountdir}/${partition}"
mkdir -p "${mntpt}"

if [ "$sdn" != "" ]; then 
    doas /sbin/mount /dev/"${sdn}i" ${mntpt}
fi

exit $?

dumount

dumount permet de démonter un disque.

Pour pleinement fonctionner, il est nécessaire d'ajouter cette ligne dans /etc/doas.conf :

permit nopass :wheel cmd /sbin/umount

apercu de dmount

#!/bin/sh

test -s $HOME/.dmenurc && . $HOME/.dmenurc
P="umount:"
OPTION="-sb ${sb} -sf ${sf} -nb ${nb} -nf ${nf} -fn ${fn} -p $P -l $l"

_REP=$(df | tr -s " " | cut -d " " -f 1,6 | dmenu $OPTION | cut -d ' ' -f2)

if [ "$_REP" != "" ]; then 
    doas /sbin/umount "$_REP"
fi

exit $?