Compare commits

...

11 Commits

9 changed files with 56 additions and 8 deletions

48
scripts/garmin.sh Executable file
View 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