External scripts like yocto kernel scc may provide same input config fragment multiple times. This may be a bug since processing same fragments multiple times can be time consuming.
Showing the changes to scripts (1 of 1 file). Show all
Unified · Split
| @@ -130,6 +130,8 @@ trap clean_up EXIT · 129 unmodified lines | ||
| 130 | 130 | |
| 131 | 131 | cat $INITFILE > $TMP_FILE |
| 132 | 132 | |
| 133 | +PROCESSED_FILES="" | |
| 134 | + | |
| 133 | 135 | # Merge files, printing warnings on overridden values |
| 134 | 136 | for ORIG_MERGE_FILE in $MERGE_LIST ; do |
| 135 | 137 | echo "Merging $ORIG_MERGE_FILE" |
| @@ -137,6 +139,14 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do · 1 unmodified line | ||
| 137 | 139 | echo "The merge file '$ORIG_MERGE_FILE' does not exist. Exit." >&2 |
| 138 | 140 | exit 1 |
| 139 | 141 | fi |
| 142 | + | |
| 143 | + # Check for duplicate input files | |
| 144 | + case " $PROCESSED_FILES " in | |
| 145 | + *" $ORIG_MERGE_FILE "*) | |
| 146 | + ${WARNOVERRIDE} "WARNING: Input file provided multiple times: $ORIG_MERGE_FILE" | |
| 147 | + ;; | |
| 148 | + esac | |
| 149 | + | |
| 140 | 150 | # Use awk for single-pass processing instead of per-symbol grep/sed |
| 141 | 151 | if ! "$AWK" -v prefix="$CONFIG_PREFIX" \ |
| 142 | 152 | -v warnoverride="$WARNOVERRIDE" \ |
| @@ -259,6 +269,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do · 116 unmodified lines | ||
| 259 | 269 | STRICT_MODE_VIOLATED=true |
| 260 | 270 | fi |
| 261 | 271 | mv "$TMP_FILE.new" "$TMP_FILE" |
| 272 | + PROCESSED_FILES="$PROCESSED_FILES $ORIG_MERGE_FILE" | |
| 262 | 273 | done |
| 263 | 274 | if [ "$STRICT_MODE_VIOLATED" = "true" ]; then |
| 264 | 275 | echo "The fragment redefined a value and strict mode had been passed." |