1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#!/system/bin/sh 2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved. 4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# found in the LICENSE file. 6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# Android shell script to make the destination directory identical with the 8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# source directory, without doing unnecessary copies. This assumes that the 9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# the destination directory was originally a copy of the source directory, and 10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# has since been modified. 11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)source=$1 13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)dest=$2 14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)echo copying $source to $dest 15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)delete_extra() { 17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) # Don't delete symbolic links, since doing so deletes the vital lib link. 18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if [ ! -L "$1" ] 19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) then 20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if [ ! -e "$source/$1" ] 21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) then 22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) echo rm -rf "$dest/$1" 23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) rm -rf "$dest/$1" 24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) elif [ -d "$1" ] 25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) then 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) for f in "$1"/* 27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) do 28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) delete_extra "$f" 29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) done 30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fi 31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fi 32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)copy_if_older() { 35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if [ -d "$1" ] && [ -e "$dest/$1" ] 36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) then 37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if [ ! -e "$dest/$1" ] 38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) then 39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) echo cp -a "$1" "$dest/$1" 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) cp -a "$1" "$dest/$1" 41a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) else 42a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) for f in "$1"/* 43a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) do 44a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) copy_if_older "$f" 45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) done 46a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fi 47a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) elif [ ! -e "$dest/$1" ] || [ "$1" -ot "$dest/$1" ] || [ "$1" -nt "$dest/$1" ] 48a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) then 49a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) # dates are different, so either the destination of the source has changed. 50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) echo cp -a "$1" "$dest/$1" 51a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) cp -a "$1" "$dest/$1" 52a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fi 53a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 54a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 55a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)if [ -e "$dest" ] 56a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)then 57a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) echo cd "$dest" 58a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) cd "$dest" 59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) for f in ./* 60a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) do 61a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if [ -e "$f" ] 62a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) then 63a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) delete_extra "$f" 64a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fi 65a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) done 66a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)else 67a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) echo mkdir "$dest" 68a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) mkdir "$dest" 69a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)fi 70a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)echo cd "$source" 71a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)cd "$source" 72a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)for f in ./* 73a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)do 74a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if [ -e "$f" ] 75a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) then 76a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) copy_if_older "$f" 77a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fi 78a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)done 79