12345678910111213141516171819202122232425262728293031323334353637 |
- #!/bin/sh
- clean_up() {
- rm -vf $filelog
- find "$(dirname $filelog)" -name *.lego.updated | xargs rm -vf
- }
- trap clean_up EXIT
- filelog="$1"
- [ -f $filelog ] || exit 0
- sort -ru < $filelog | while IFS= read -r line
- do
- # Current format example
- # {module}:{method}:{path}:{kernel(optional)}
- module=$(echo $line | cut -d':' -f 1)
- method=$(echo $line | cut -d':' -f 2)
- path=$(echo $line | cut -d':' -f 3)
- if [ "$method" = "C" ]
- then
- rm -vf "$path"
- elif [ "$method" = "U" ]
- then
- if [ "$module" = "NONE" ]
- then
- # Update Kconfig for source or Update Makefile for obj-y
- add_lines=$(grep "ADDED BY LEGO" $path || true)
- # clean up
- [ -f "${path}" ] && [ -n "$add_lines" ] && echo "CLEAR ${path}" \
- && cat ${path} | grep -v "ADDED BY LEGO" > ${path}.tmp && mv ${path}.tmp ${path}
- else
- bpath="$(dirname $path)/.$(basename $path).lego.updated"
- [ -f "$bpath" ] && echo "ROLLBACK $path" && mv -vf "$bpath" "$path"
- fi
- fi
- done
|