| #!/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 |