summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ar/.config/shell/aliasrc5
-rwxr-xr-xar/.local/bin/mounter25
-rwxr-xr-xar/.local/bin/unmounter12
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