From 3c797d82da09e6f51fffaacc921b4caf05f8d145 Mon Sep 17 00:00:00 2001 From: zsadroh <23707164+zsadroh@users.noreply.github.com> Date: Thu, 23 Dec 2021 21:12:21 -0300 Subject: [PATCH] Added doas support --- .local/bin/dmenumount | 15 ++++++++++----- .local/bin/dmenuumount | 11 ++++++++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.local/bin/dmenumount b/.local/bin/dmenumount index 3cb1f814..7725d981 100755 --- a/.local/bin/dmenumount +++ b/.local/bin/dmenumount @@ -12,21 +12,21 @@ getmount() { \ test -z "$mp" && exit 1 if [ ! -d "$mp" ]; then mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") || exit 1 - [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp") + [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || $elev mkdir -p "$mp") fi } mountusb() { \ chosen="$(echo "$usbdrives" | dmenu -i -p "Mount which drive?")" || exit 1 chosen="$(echo "$chosen" | awk '{print $1}')" - sudo -A mount "$chosen" 2>/dev/null && notify-send "💻 USB mounting" "$chosen mounted." && exit 0 + $elev mount "$chosen" 2>/dev/null && notify-send "💻 USB mounting" "$chosen mounted." && exit 0 alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}') getmount "/mnt /media /mount /home -maxdepth 5 -type d $alreadymounted" partitiontype="$(lsblk -no "fstype" "$chosen")" case "$partitiontype" in - "vfat") sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000;; - "exfat") sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";; - *) sudo -A mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp";; + "vfat") $elev mount -t vfat "$chosen" "$mp" -o rw,umask=0000;; + "exfat") $elev mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";; + *) $elev mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; $elev chown "$user":"$ug" "$mp";; esac notify-send "💻 USB mounting" "$chosen mounted to $mp." } @@ -51,6 +51,11 @@ asktype() { \ anddrives=$(simple-mtpfs -l 2>/dev/null) usbdrives="$(lsblk -rpo "name,type,size,mountpoint" | grep 'part\|rom' | awk '$4==""{printf "%s (%s)\n",$1,$3}')" +if [ $(command -v sudo) ]; then + elev="sudo -A" +else + elev="doas" +fi if [ -z "$usbdrives" ]; then [ -z "$anddrives" ] && echo "No USB drive or Android device detected" && exit diff --git a/.local/bin/dmenuumount b/.local/bin/dmenuumount index 946d12c3..b0c7278f 100755 --- a/.local/bin/dmenuumount +++ b/.local/bin/dmenuumount @@ -9,13 +9,13 @@ unmountusb() { chosen="$(echo "$drives" | dmenu -i -p "Unmount which drive?")" || exit 1 chosen="$(echo "$chosen" | awk '{print $1}')" [ -z "$chosen" ] && exit - sudo -A umount "$chosen" && notify-send "💻 USB unmounting" "$chosen unmounted." + $elev umount "$chosen" && notify-send "💻 USB unmounting" "$chosen unmounted." } unmountandroid() { \ chosen="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | dmenu -i -p "Unmount which device?")" || exit 1 [ -z "$chosen" ] && exit - sudo -A umount -l "$chosen" && notify-send "🤖 Android unmounting" "$chosen unmounted." + $elev umount -l "$chosen" && notify-send "🤖 Android unmounting" "$chosen unmounted." } asktype() { \ @@ -26,7 +26,12 @@ asktype() { \ esac } -drives=$(lsblk -nrpo "name,type,size,mountpoint,label" | awk -F':' '{gsub(/ /,":")}$4!~/\/boot|\/efi|\/home$|SWAP/&&length($4)>1{printf "%s (%s) %s\n",$4,$3,$5}') +drives=$(lsblk -nrpo "name,type,size,mountpoint" | awk '$4!~/\/boot|\/home$|SWAP/&&length($4)>1{printf "%s (%s)\n",$4,$3}') +if [ $(command -v sudo) ]; then + elev="sudo -A" +else + elev="doas" +fi if ! grep simple-mtpfs /etc/mtab; then [ -z "$drives" ] && echo "No drives to unmount." && exit