/
phonesync
executable file
·53 lines (45 loc) · 1.56 KB
/
phonesync
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash
# sync data between phone and laptop
# using SSHelper on my phone
if [ -z $1 ]
then
echo "usage: sync_phone <PHONE_IP>"
exit
fi
PHONE_IP=$1
PHONE_PORT=2222
# sync directories TO the phone
for DIR in notes deaddrop; do
echo "Syncing ~/${DIR} -> /sdcard/${DIR}"
# the ssh user does not have permissions to modify
# permission and modification times so we skip those
# as such, we only compare sizes; the permission and modification
# times are unreliable.
rsync -avzL -e "ssh -p ${PHONE_PORT}" --no-perms --no-times --size-only --progress --delete ~/${DIR}/ ${PHONE_IP}:/sdcard/${DIR}/
done
declare -A backups
backups[DCIM/Camera]=~/photos/android_dump
backups[Pictures/reddit_sync]=~/photos/stash
backups[Tumblr]=~/photos/stash
backups[MyTinyScan/Documents]=~/docs/scans
# backup (i.e. don't delete)
# directories FROM the phone
for DIR in "${!backups[@]}"; do
echo "Backing up /sdcard/${DIR} -> ${backups[$DIR]}"
rsync -avz -e "ssh -p ${PHONE_PORT}" --progress ${PHONE_IP}:/sdcard/${DIR}/ "${backups[$DIR]}"
done
# sync select music TO the phone
MUSIC_BASE_DIR=~/musics/
MUSIC_PLAYLIST=~/musics/_playlists/music.m3u
# parse a m3u playlist
function parse_songs() {
while read line; do
echo "${MUSIC_BASE_DIR}${line}"
done <$MUSIC_PLAYLIST
}
# create temporary directory for songs
rm -rf /tmp/musics
mkdir /tmp/musics
parse_songs | xargs -0 -d '\n' -I {} cp {} /tmp/musics/
rsync -avz -e "ssh -p ${PHONE_PORT}" --no-perms --no-times --size-only --progress --delete /tmp/musics ${PHONE_IP}:/sdcard/Music/
rm -rf /tmp/musics