From a125fb8743e2ccec1d5df3754690b29c4a498d80 Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Tue, 29 Sep 2009 10:57:53 +0200 Subject: [PATCH] Initial import into GIT of iPhone2Mac as of 2009-07-25 --- de.barton.iPhone2Mac.plist | 22 ++++++++++++ iPhone2Mac.sh | 68 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 de.barton.iPhone2Mac.plist create mode 100755 iPhone2Mac.sh diff --git a/de.barton.iPhone2Mac.plist b/de.barton.iPhone2Mac.plist new file mode 100644 index 0000000..52e733b --- /dev/null +++ b/de.barton.iPhone2Mac.plist @@ -0,0 +1,22 @@ + + + + + Label + de.barton.iPhone2Mac + ProgramArguments + + /usr/local/bin/iPhone2Mac.sh + + RunAtLoad + + StartInterval + 600 + Nice + 5 + LowPriorityIO + + LimitLoadToSessionType + Aqua + + diff --git a/iPhone2Mac.sh b/iPhone2Mac.sh new file mode 100755 index 0000000..f639cac --- /dev/null +++ b/iPhone2Mac.sh @@ -0,0 +1,68 @@ +#!/bin/bash +# 2009-07-25, alex@barton.de + +DEBUG= +VERBOSE=1 + +backup_d="" +call_db="" + +[ -n "$DEBUG" ] && VERBOSE=1 + +abort() { + echo "$*" + exit 1 +} + +message() { + echo "$*" +} +verbose() { + [ -n "$VERBOSE" ] && message "$*" +} +debug() { + [ -n "$DEBUG" ] && verbose "$*" +} + +umask 0077 + +NAME=`basename "$0" | cut -d'.' -f1` +DATA_DIR=~/Library/Application\ Support/$NAME +CALL_LOG="${DATA_DIR}/call.log" +CALL_TMP="/tmp/$NAME.$$.call.log.tmp" +debug "DATA_DIR=$DATA_DIR" + +mkdir -p "$DATA_DIR" || abort "Can't create \"$DATA_DIR\"!" + +if [ -z "$backup_d" ]; then + verbose "Locating backup directory ..." + cd ~/Library/Application\ Support/MobileSync/Backup/ \ + || abort "No backup data stores found!?" + cd * \ + || abort "Can't access backup directory!?" +else + cd "$backup_d" || abort "Can't access backup directory!?" +fi +verbose "iPhone Backup directory is \"$PWD\"." + +if [ -z "$call_db" ]; then + verbose "Locating SQLite call database ..." + call_db=$(for f in `file * | fgrep SQLite | cut -d':' -f1`; do + sqlite3 "$f" ".schema" | fgrep "CREATE TABLE call (" >/dev/null; + [ $? -eq 0 ] && echo "$f"; done + ) +fi +verbose "Call database is \"$call_db\"." + +if [ -e "$CALL_LOG" ]; then + debug "Copying existing ASCII call log ..." + cp "$CALL_LOG" "$CALL_TMP" || abort "Can't copy old log file!" +fi +verbose "Dumping SQLite call databse ..." +sqlite3 "$call_db" "select * from call;" >>"$CALL_TMP" +verbose "Sorting plain ASCII call log ..." +sort -u "$CALL_TMP" >"$CALL_LOG" +rm -f "$CALL_TMP" +first_d=$(date -r `head -1 "$CALL_LOG" | cut -d'|' -f3` "+%Y-%m-%d %H:%M") +last_d=$(date -r `tail -1 "$CALL_LOG" | cut -d'|' -f3` "+%Y-%m-%d %H:%M") +message `wc -l "$CALL_LOG" | awk '{print \$1}'`" unique entries logged, from $first_d to $last_d." -- 2.39.2