Rewrote icloudsync to handle start,stop,attach,status

This commit is contained in:
Siina Mashek 2024-10-14 10:46:34 +03:00
parent 584d85ef90
commit 131232c5cf

View File

@ -1,26 +1,71 @@
#!/bin/sh #!/bin/sh
# Sync icloud photos to machine using a # Sync icloud photos to machine using a
# simple wrapper for tmux and icloudpd # simple wrapper for tmux and icloudpd
session="icloudsync"
# Check if icloudpd is available # Check if icloudpd is available
if ! type icloudpd >/dev/null; then if ! type icloudpd >/dev/null; then
echo "please install icloud photo downloader." echo "please install icloud photo downloader."
echo "See: https://github.com/icloud-photos-downloader/icloud_photos_downloader" echo "See: https://github.com/icloud-photos-downloader/icloud_photos_downloader"
exit 1 exit 1
fi fi
tmux has-session -t $session 2>/dev/null # tmux session name
session="icloudsync"
if [ $? != 0 ]; then attach () {
tmux new-session -d -s $session tmux attach-session -t $session
tmux send-keys -t $session "icloudpd --directory=$HOME/Pictures --username \$ICLOUD_USERNAME" C-m }
echo "icloudsync started"
else check_session () {
if [[ $1 == "attach" ]]; then tmux has-session -t $session 2>/dev/null
tmux attach-session -t $session if [ $? == 0 ]; then
return 1
else else
echo "icloudsync already active: use icloudsync attach to view progress" return 0
fi fi
}
start_sync () {
if check_session 0; then
tmux new-session -d -s $session
tmux send-keys -t $session 'icloudpd --directory=$HOME/Pictures --username $ICLOUD_USERNAME --watch-with-interval 3600' C-m
echo started
else
echo already active
fi
}
stop_sync () {
tmux send-keys -t $session C-c exit C-m
echo stopped
}
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 fi
while [[ $# -gt 0 ]]; do
case $1 in
start)
start_sync
;;
stop)
stop_sync
;;
attach)
attach
;;
status)
status
;;
esac
exit
done