You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.2 KiB
52 lines
1.2 KiB
#!/usr/bin/env sh |
|
|
|
###BEGIN CONFIGURATION### |
|
SOURCE_DIR="$HOME/Music/" |
|
DEST_DIR="Internal shared storage/Music/Synced/" |
|
###END CONFIGURATION### |
|
|
|
UID=$(id -u -r) |
|
|
|
die() { |
|
echo "\033[31;1m$@\033[m" |
|
exit 1 |
|
} |
|
|
|
info() { |
|
echo "\033[33;1m$@\033[m" |
|
} |
|
|
|
get_mtp_dir() { |
|
mtpdir="$(echo /run/user/$UID/gvfs/mtp* | head -n1)" |
|
[ -d "$mtpdir" ] && echo "$mtpdir" |
|
} |
|
|
|
[ -z "$1" ] && info "Any arguments are passed to rsync." |
|
info "Configuration: 💻:'$SOURCE_DIR' -> 📱:'$DEST_DIR'." |
|
|
|
[ ! -d "$SOURCE_DIR" ] && die "The specified source directory '$SOURCE_DIR' does not exist!" |
|
|
|
if [ -n "$(get_mtp_dir)" ]; then |
|
info "MTP already mounted." |
|
else |
|
info "Mounting MTP device..." |
|
mtpdev="$(gio mount -li | sed -ne 's@.*=\(mtp://.*\)@\1@p')" |
|
[ -z "$mtpdev" ] && die "MTP device not found!" |
|
gio mount "$mtpdev" || die "Unable to mount MTP device!" |
|
fi |
|
|
|
info "Syncing to '$(get_mtp_dir)'." |
|
rsync --progress \ |
|
--human-readable \ |
|
--omit-dir-times \ |
|
--no-perms \ |
|
--size-only \ |
|
--recursive \ |
|
--inplace \ |
|
--exclude='*.parts' \ |
|
--exclude='*.m3u' \ |
|
--delete \ |
|
"$@" \ |
|
"$SOURCE_DIR" "$(get_mtp_dir)/$DEST_DIR" \ |
|
&& info "Success!" \ |
|
|| die "Error synchronizing files!"
|
|
|