diff options
| -rw-r--r-- | ar/.config/shell/aliasrc | 5 | ||||
| -rwxr-xr-x | ar/.local/bin/mounter | 25 | ||||
| -rwxr-xr-x | ar/.local/bin/unmounter | 12 |
3 files changed, 29 insertions, 13 deletions
diff --git a/ar/.config/shell/aliasrc b/ar/.config/shell/aliasrc index ca95414..0aee138 100644 --- a/ar/.config/shell/aliasrc +++ b/ar/.config/shell/aliasrc @@ -340,8 +340,9 @@ alias rscr='rsync -vrazPlu --remove-source-files' alias rrr='sudo udevadm control --reload-rules' # samba -alias winip="sudo mount -t cifs //192.168.0.1/HDD1 /media/$USER/hdd -o username=si,vers=2.0" -alias win10="sudo mount -t cifs //192.168.0.3/Share /media/$USER/win10 -o username=THESIAHXYZ-WIN1" +alias winip="[ ! -d /media/$USER/hdd >/dev/null 2>&1 ] && mkdir -p /media/$USER/hdd >/dev/null 2>&1; sudo mount -t cifs //$(pass show smb/hdd) /media/$USER/hdd -o username=\"si\",password=\"$(pass show default/default)vers=2.0\"" +alias win10="[ ! -d /media/$USER/win10 >/dev/null 2>&1 ] && mkdir -p /media/$USER/win10 >/dev/null 2>&1; sudo mount -t cifs //$(pass show smb/share) /media/$USER/win10 -o username=\"THESIAHXYZ-WIN1\",password=\"$(pass show default/default)\"" +alias macair="[ ! -d /media/$USER/macair >/dev/null 2>&1 ] && mkdir -p /media/$USER/macair >/dev/null 2>&1; sudo mount -t cifs //$(pass show smb/macair)/si /media/$USER/macair -o username=\"Soomin Im\",password=\"$(pass show default/default)\"" # sc-im alias scim='sc-im' diff --git a/ar/.local/bin/mounter b/ar/.local/bin/mounter index f7a3455..b69dac8 100755 --- a/ar/.local/bin/mounter +++ b/ar/.local/bin/mounter @@ -37,6 +37,8 @@ attemptmount() { fi } +notify-send -t 10000 "🔎 Searching drives to mount..." + # Check for phones. phones="$(simple-mtpfs -l 2>/dev/null | sed "s/^/📱/")" mountedphones="$(grep "simple-mtpfs" /etc/mtab)" @@ -82,34 +84,45 @@ done | filter)" normalparts="$(echo "$lsblkoutput" | grep -v crypto_LUKS | grep 'part\|rom\|crypt' | sed "s/^/💾 /" | filter)" # Get all available IP addresses with open Samba shares in the wlan0 subnet, excluding eth0 IP -smbips="$(sudo arp-scan --interface=wlan0 --localnet | grep -vEi '(EFM Networks|locally administered|DUP:)' | awk '/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{print $1}')" +smbips="$(sudo arp-scan --interface=eth0 --interface=wlan0 --localnet | grep -vEi '(EFM Networks|DUP:)' | awk '/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{print $1}')" # Get currently mounted CIFS shares mountedsmbs="$(grep 'cifs' /etc/mtab)" for smbip in $smbips; do - smb=$( + win=$( smbclient -L "$smbip" -U% -A /dev/stdin <<EOF 2>/dev/null | awk '/Disk/ {print $1}' | grep -vEi '(ADMIN|\w)\$' username=$(whoami) +password=$(pass show default/windows) +EOF + ) + mac=$( + smbclient -L "$smbip" -U% -A /dev/stdin <<EOF 2>/dev/null | awk '/Disk/ {print $1}' | grep -vEi '(ADMIN|\w)\$|Macintosh' +username=$(whoami) password=$(pass show default/default) EOF ) - win=$( + smb=$( smbclient -L "$smbip" -U% -A /dev/stdin <<EOF 2>/dev/null | awk '/Disk/ {print $1}' | grep -vEi '(ADMIN|\w)\$' username=$(whoami) -password=$(pass show default/windows) +password=$(pass show default/default) EOF ) while IFS= read -r share; do if ! echo "$smbshares" | grep -q "$share"; then smbshares+="//$smbip/$share"$'\n' fi - done <<<"$smb" + done <<<"$win" while IFS= read -r share; do if ! echo "$smbshares" | grep -q "$share"; then smbshares+="//$smbip/$share"$'\n' fi - done <<<"$win" + done <<<"$mac" + while IFS= read -r share; do + if ! echo "$smbshares" | grep -q "$share"; then + smbshares+="//$smbip/$share"$'\n' + fi + done <<<"$smb" done smbshares="$(echo "$smbshares" | sed '/^$/d')" diff --git a/ar/.local/bin/unmounter b/ar/.local/bin/unmounter index 7d0efee..537fd25 100755 --- a/ar/.local/bin/unmounter +++ b/ar/.local/bin/unmounter @@ -21,17 +21,18 @@ chosen="$(echo "$allunmountable" | dmenu -i -p "Unmount which drive?")" chosen="${chosen%% *}" test -n "$chosen" -label=$(sudo lsblk -no "label" "$(df "/${chosen#*/}" | tail -n 1 | awk '{print $1}')") +label=$(df "/${chosen#*/}" | tail -n 1 | awk '{print $1}' | xargs -I {} sudo blkid {} | awk -F '\"' '{print $2}') if [ -n "$label" ]; then mountpath="$(sudo lsblk -no "mountpoints" "$(df "/${chosen#*/}" | tail -n 1 | awk '{print $1}')")" sudo -A umount -l "/${chosen#*/}" notify-send "⏏️ Device unmounted." "$chosen has been unmounted." - if [ "${chosen#*/}" = "${chosen}" ] && + if [ "/media/$USER/${chosen##*/}" = "/${chosen#*/}" ] && [ "${chosen##*/}" = "$label" ] && [ "/media/$USER/${chosen##*/}" = "$mountpath" ] && [ -e "/${chosen#*/}" ] && [ ! -s "/${chosen#*/}" ]; then - rm -rf "/${chosen#*/}" >/dev/null 2>&1 || sudo rm -rf "/${chosen#*/}" + chosen="/${chosen#*/}" + rm -r "${chosen:?}" >/dev/null 2>&1 || sudo -A rm -r "${chosen:?}" notify-send "🚮 Mounted path removed." "$chosen has been removed." fi else @@ -42,8 +43,9 @@ else sudo -A umount "/${chosen#*/}" notify-send "⏏️ IOS Drive unmounted." "/${chosen#*/} has been unmounted." fi - [ -e "/${chosen#*/}" ] && [ ! -s "/${chosen#*/}" ] && - sudo -A rm -r "/${chosen#*/}" && + chosen="/${chosen#*/}" + [ -e "$chosen" ] && [ ! -s "$chosen" ] && + sudo -A rm -r "${chosen:?}" && notify-send "🚮 Mounted path removed." "$chosen has been removed." fi |
