Add script to sync garmin
This commit is contained in:
48
scripts/garmin.sh
Executable file
48
scripts/garmin.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -o nounset
|
||||
|
||||
gid=$(id -g)
|
||||
uid=$(id -u)
|
||||
|
||||
DEV=/dev/disk/by-label/GARMIN
|
||||
MOUNTPOINT=/mnt
|
||||
MOUNTOPTS="uid=${uid},gid=${gid}"
|
||||
|
||||
SYNC_FOLDERS=(
|
||||
Activity
|
||||
)
|
||||
|
||||
RSYNCOPTS=(
|
||||
--verbose
|
||||
--recursive
|
||||
--checksum
|
||||
--itemize-changes
|
||||
)
|
||||
|
||||
if [[ ! -e "${DEV}" ]]; then
|
||||
printf "no garmin device present\n" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mnt=$(findmnt --noheadings --first-only --options "${MOUNTOPTS}" --output TARGET "${DEV}")
|
||||
|
||||
if [[ -n "${mnt}" ]]; then
|
||||
if [[ "${mnt}" == "${MOUNTPOINT}" ]]; then
|
||||
printf '%s already correctly mounted\n' "${DEV}"
|
||||
else
|
||||
printf '%s already mounted somewhere else, aborting\n' "${DEV}" >&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if findmnt --mountpoint "${MOUNTPOINT}" >/dev/null; then
|
||||
printf "%s already in use\n" "${MOUNTPOINT}" >&2
|
||||
exit 1
|
||||
else
|
||||
sudo mount -o "${MOUNTOPTS}" "${DEV}" "${MOUNTPOINT}"
|
||||
fi
|
||||
fi
|
||||
|
||||
for folder in "${SYNC_FOLDERS[@]}"; do
|
||||
rsync "${RSYNCOPTS[@]}" "${MOUNTPOINT}/GARMIN/${folder}/" "${HOME}/sync/garmin/${folder}/"
|
||||
done
|
||||
Reference in New Issue
Block a user