#!/sbin/sh
#
# Functions for backuptool.sh
#

DEBUG=0

backup_file() {
  if [ -e "$1" ]; then
    local F=`basename "$1"`
    local D=`dirname "$1"`
    # dont backup any apps that have odex files, they are useless
    if ( echo "$F" | grep -q "\.apk$" ) && [ -e `echo "$1" | sed -e 's/\.apk$/\.odex/'` ]; then
      echo "Skipping odexed apk $1"
    else
      mkdir -p "$C/$D"
      cp -p "$1" "$C/$D/$F"
      if [ $DEBUG -eq 1 ]; then 
        echo backup_file "$1" "$C/$D/$F"
      fi
    fi
  fi
}

restore_file() {
  local FILE=`basename "$1"`
  local DIR=`dirname "$1"`
  if [ -e "$C/$DIR/$FILE" ]; then
    if [ ! -d "$DIR" ]; then
      mkdir -p "$DIR"
    fi
    cp -p "$C/$DIR/$FILE" "$1"
    if [ $DEBUG -eq 1 ]; then 
      echo restore_file "$C/$DIR/$FILE" "$1"
    fi
    if [ -n "$2" ]; then
      echo "Deleting obsolete file $2"
      rm "$2"
    fi
  fi
}
