Files
BPI-CM9-Linux/aml-comp/multimedia/ffmpeg-aml/get_amlogic_modified_patch.sh
T
2026-08-24 10:03:24 +08:00

53 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# -x
FFMPEG_DIR="$(dirname "${BASH_SOURCE[0]}" )"
RUN_DIR="$(pwd)"
SAVE_DIR="$FFMPEG_DIR/.typo_check"
#ffmpeg last commit id
LAST_COMMIT_ID=$(git log -1 | sed -n '1p' |awk '{print $2}' )
#ffmpeg 4.4 orignal source code commit id (unmodified by amlogic)
BASE_COMMIT_ID=$(git log |grep "add ffmpeg4.4" -B 4 | sed -n '1p' |awk '{print $2}')
BASE_COMMIT_MSG=$(git log -1 $BASE_COMMIT_ID --raw )
#files modified by amlogic
MODIFIED_FILES=$(git diff --name-status $BASE_COMMIT_ID $LAST_COMMIT_ID |grep "^[MA]" | awk '{print $2}' ) #|sort -n |uniq -d
function init() {
rm -rf "$SAVE_DIR"
sync
mkdir -p "$SAVE_DIR"
}
function is_base_added() {
modified_file=$1
base_added=$(echo $BASE_COMMIT_MSG |grep "$modified_file" |wc -l)
if [ $((base_added)) -gt 0 ]; then
return 1
fi
return 0
}
function get_first_commit_for_file() {
target_file=$1
is_base_added $target_file
if [ $((base_added)) -eq 1 ]; then
echo $BASE_COMMIT_ID
else
echo "$(git log --oneline $target_file |sed -n '$p' |awk '{print $1}')"
fi
}
init
for file in $MODIFIED_FILES
do
first_commit="$(get_first_commit_for_file $file)"
diff_content=$(git diff $first_commit:$file $LAST_COMMIT_ID:$file)
if [ $(($?)) -eq 0 ]; then
#echo "ID:"$first_commit" -- "$file
echo "$diff_content" > $SAVE_DIR/$(echo $file |sed 's/\//_/g')".diff"
fi
done