79 строки
1.5 KiB
Bash
Executable File
79 строки
1.5 KiB
Bash
Executable File
#!/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
|