51 lines
1.1 KiB
Bash
Executable File
51 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
|
|
###BEGIN CONFIGURATION###
|
|
SOURCE_DIR="$HOME/Music/"
|
|
DEST_DIR="Internal shared storage/Music/"
|
|
###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' \
|
|
"$@" \
|
|
"$SOURCE_DIR" "$(get_mtp_dir)/$DEST_DIR" \
|
|
&& info "Success!" \
|
|
|| die "Error synchronizing files!"
|