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