2024-11-03 15:40:20 -06:00

104 lines
2.7 KiB
Bash

#!/bin/zsh
baseDir=~/Temp/Phone
mkdir -p ~/.cache/phone/{screenshots,photos}
mkdir -p $baseDir
is_mounted() {
mount | awk -v DIR="$1" '{if ($3 == DIR) { exit 0}} ENDFILE{exit -1}'
}
check_mount() {
if is_mounted $baseDir; then
echo "Phone is mounted :)"
else
echo "Mounting phone..."
sshfs -o port=2222 -oHostKeyAlgorithms=+ssh-rsa jawz@phone:/ $baseDir
fi
}
sync_music() {
check_mount
echo "Syncing music..."
rsync --omit-dir-times --size-only --no-perms --recursive --progress \
--delete $HOME/Music/ $baseDir/Music
}
sync_art() {
check_mount
echo "Moving drawings..."
typeset -A remotes
remotes=(
"$HOME/Pictures/Art/My Art/2019/" "$baseDir/Pictures/Art/2019/"
"$HOME/Pictures/Art/My Art/2020/" "$baseDir/Pictures/Art/2020/"
"$HOME/Pictures/Art/My Art/2021/" "$baseDir/Pictures/Art/2021/"
"$HOME/Pictures/Art/4me/" "$baseDir/Pictures/Commissions/"
"$HOME/Pictures/Art/Artists/Friends/" "$baseDir/Pictures/Friends/"
)
for local remote in "${(@kv)remotes}"
do (
rsync --omit-dir-times --size-only --no-perms --recursive --progress --delete \
--exclude={'*.psd','*.clip','*.docx','*.pdf','*.pur','*.ttf','*.zip','*.xcf'} \
--exclude={'*/Assets','.nomedia','*.sai','*.mp4'} \
$local $remote
)
done
}
sync_photos() {
check_mount
echo "Moving photos..."
mv $baseDir/DCIM/Camera/* $HOME/.cache/phone/photos/
mv $HOME/.cache/phone/photos/* "$HOME/Pictures/Photos/Camera Roll/"
}
sync_screenshots() {
check_mount
echo "Moving screenshots..."
mv $baseDir/Pictures/Screenshots/* $HOME/.cache/phone/screenshots/
mv $HOME/.cache/phone/screenshots/* $HOME/Pictures/Screenshots/
}
sync_memes() {
check_mount
echo "Moving those memes... lol"
mv $baseDir/Pictures/Twitter/* "$HOME/Pictures/To Organize/"
mv $baseDir/Pictures/Reddit/* "$HOME/Pictures/To Organize/"
mv $baseDir/Pictures/Discord/* "$HOME/Pictures/To Organize/"
}
sync_telegram() {
check_mount
echo "Moving telegram media..."
mv $baseDir/Pictures/Telegram/* "$HOME/Pictures/To Organize/"
}
check_umount() {
umount $baseDir
rmdir $baseDir
}
case "$1" in
mount) check_mount ;;
music) sync_music ;;
art) sync_art ;;
photos) sync_photos ;;
screenshots) sync_screenshots ;;
memes) sync_memes ;;
telegram) sync_telegram ;;
unmount) unmount ;;
everything)
#sync_music
sync_art
sync_photos
sync_screenshots
sync_memes
sync_telegram
check_umount
;;
*)
echo "not a valid input"
exit 1
;;
esac