69 lines
1.8 KiB
Bash
69 lines
1.8 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
#currentVersion=android-8.0.0_r36
|
||
|
|
#currentVersion=android-8.1.0_r22
|
||
|
|
currentVersion=android-9.0.0_r12
|
||
|
|
|
||
|
|
baseDir=`dirname $0`/..
|
||
|
|
frameworksBaseRepoDir="$HOME/Dev/AOSP/frameworks/base"
|
||
|
|
|
||
|
|
function showDiffs2() {
|
||
|
|
file="$1"
|
||
|
|
line="$2"
|
||
|
|
|
||
|
|
x=$(echo "$line" | sed -e 's/.*https:\/\/android.googlesource.com\/\([^ ]*\)\/[+]\/\([^/]*\)\/\([^ ]*\).*/\1 \2 \3/')
|
||
|
|
IFS=" " read -a parts <<< "$x"
|
||
|
|
repo="${parts[0]}"
|
||
|
|
version="${parts[1]}"
|
||
|
|
repoFile="${parts[2]}"
|
||
|
|
|
||
|
|
curSha=$(cd "$frameworksBaseRepoDir" && git rev-parse --verify "$currentVersion") || true
|
||
|
|
if [[ -z "$curSha" ]]; then
|
||
|
|
echo "Unknown $currentVersion!"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
thisSha=$(cd "$frameworksBaseRepoDir" && git rev-parse --verify "$version") || true
|
||
|
|
if [[ -z "$thisSha" ]]; then
|
||
|
|
echo "Unknown $version!"
|
||
|
|
return
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ "x$curSha" != "x$thisSha" ]; then
|
||
|
|
(cd "$frameworksBaseRepoDir" && git diff --quiet "${version}..${currentVersion}" "--" "$repoFile")
|
||
|
|
if [ $? -eq 0 ]; then
|
||
|
|
echo "No changes in: $file"
|
||
|
|
echo " From $repoFile $version -> $currentVersion"
|
||
|
|
else
|
||
|
|
tmpFile="/tmp/diff.tmp"
|
||
|
|
rm -f "$tmpFile"
|
||
|
|
echo "Apply changes to: $file" > "$tmpFile"
|
||
|
|
echo " From $repoFile $version -> $currentVersion" >> "$tmpFile"
|
||
|
|
(cd "$frameworksBaseRepoDir" && git diff --color=always "${version}..${currentVersion}" "--" "$repoFile" >> "$tmpFile")
|
||
|
|
less -r "$tmpFile"
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
function showDiffs() {
|
||
|
|
file="$1"
|
||
|
|
|
||
|
|
grep -E 'https?:\/\/(android\.googlesource\.com|.*\.git\.corp\.google\.com)\/' "$file" | \
|
||
|
|
while read -r line ; do
|
||
|
|
showDiffs2 "$file" "$line"
|
||
|
|
done
|
||
|
|
}
|
||
|
|
|
||
|
|
files=$*
|
||
|
|
|
||
|
|
if [ -z "$files" ]; then
|
||
|
|
find . -name "*.java" -print0 | while read -d $'\0' file; do
|
||
|
|
showDiffs "$file"
|
||
|
|
done
|
||
|
|
else
|
||
|
|
for file in "$files"; do
|
||
|
|
showDiffs "$file"
|
||
|
|
done
|
||
|
|
fi
|