#!/system/bin/sh # Copyright 2014 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Android shell script to make the destination directory identical with the # source directory, without doing unnecessary copies. This assumes that the # the destination directory was originally a copy of the source directory, and # has since been modified. source=$1 dest=$2 echo copying $source to $dest delete_extra() { # Don't delete symbolic links, since doing so deletes the vital lib link. if [ ! -L "$1" ] then if [ ! -e "$source/$1" ] then echo rm -rf "$dest/$1" rm -rf "$dest/$1" elif [ -d "$1" ] then for f in "$1"/* do delete_extra "$f" done fi fi } copy_if_older() { if [ -d "$1" ] && [ -e "$dest/$1" ] then if [ ! -e "$dest/$1" ] then echo cp -a "$1" "$dest/$1" cp -a "$1" "$dest/$1" else for f in "$1"/* do copy_if_older "$f" done fi elif [ ! -e "$dest/$1" ] || [ "$1" -ot "$dest/$1" ] || [ "$1" -nt "$dest/$1" ] then # dates are different, so either the destination of the source has changed. echo cp -a "$1" "$dest/$1" cp -a "$1" "$dest/$1" fi } if [ -e "$dest" ] then echo cd "$dest" cd "$dest" for f in ./* do if [ -e "$f" ] then delete_extra "$f" fi done else echo mkdir "$dest" mkdir "$dest" fi echo cd "$source" cd "$source" for f in ./* do if [ -e "$f" ] then copy_if_older "$f" fi done