#!/bin/sh # Sync icloud photos to machine using a # simple wrapper for tmux and icloudpd # Check if icloudpd is available if ! type icloudpd >/dev/null; then echo "please install icloud photo downloader." echo "See: https://github.com/icloud-photos-downloader/icloud_photos_downloader" exit 1 fi # Ensure environment variables are set if [[ -z "$ICLOUD_DIR" ]]; then echo 'please set $ICLOUD_DIR' exit 1 fi if [[ -z "$ICLOUD_USERNAME" ]]; then echo 'please set $ICLOUD_USERNAME' exit 1 fi # tmux session name session="icloudsync" attach () { tmux attach-session -t $session } check_session () { tmux has-session -t $session 2>/dev/null if [ $? == 0 ]; then return 1 else return 0 fi } start_sync () { if check_session 0; then tmux new-session -d -s $session tmux send-keys -t $session 'icloudpd --directory=$ICLOUD_DIR --username $ICLOUD_USERNAME --watch-with-interval 3600' C-m echo started else echo already active fi } stop_sync () { if check_session 0; then echo inactive else tmux send-keys -t $session C-c exit C-m echo stopped fi } status () { if check_session 0; then echo inactive else tmux capture-pane -t icloudsync -p -S -1 | tail -1 fi } if [[ $# -eq 0 ]]; then echo "Available commands are: start, stop, attach, status" fi while [[ $# -gt 0 ]]; do case $1 in start) start_sync ;; stop) stop_sync ;; attach) attach ;; status) status ;; esac exit done