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 | cat $INITFILE > $TMP_FILE | 131 | cat $INITFILE > $TMP_FILE |
| 132 | 132 | ||
| 133 | PROCESSED_FILES="" | ||
| 134 | |||
| 133 | # Merge files, printing warnings on overridden values | 135 | # Merge files, printing warnings on overridden values |
| 134 | for ORIG_MERGE_FILE in $MERGE_LIST ; do | 136 | for ORIG_MERGE_FILE in $MERGE_LIST ; do |
| 135 | echo "Merging $ORIG_MERGE_FILE" | 137 | echo "Merging $ORIG_MERGE_FILE" |
| @@ -137,6 +139,14 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do · 1 unmodified line | |||
| 137 | echo "The merge file '$ORIG_MERGE_FILE' does not exist. Exit." >&2 | 139 | echo "The merge file '$ORIG_MERGE_FILE' does not exist. Exit." >&2 |
| 138 | exit 1 | 140 | exit 1 |
| 139 | fi | 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 | # Use awk for single-pass processing instead of per-symbol grep/sed | 150 | # Use awk for single-pass processing instead of per-symbol grep/sed |
| 141 | if ! "$AWK" -v prefix="$CONFIG_PREFIX" \ | 151 | if ! "$AWK" -v prefix="$CONFIG_PREFIX" \ |
| 142 | -v warnoverride="$WARNOVERRIDE" \ | 152 | -v warnoverride="$WARNOVERRIDE" \ |
| @@ -259,6 +269,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do · 116 unmodified lines | |||
| 259 | STRICT_MODE_VIOLATED=true | 269 | STRICT_MODE_VIOLATED=true |
| 260 | fi | 270 | fi |
| 261 | mv "$TMP_FILE.new" "$TMP_FILE" | 271 | mv "$TMP_FILE.new" "$TMP_FILE" |
| 272 | PROCESSED_FILES="$PROCESSED_FILES $ORIG_MERGE_FILE" | ||
| 262 | done | 273 | done |
| 263 | if [ "$STRICT_MODE_VIOLATED" = "true" ]; then | 274 | if [ "$STRICT_MODE_VIOLATED" = "true" ]; then |
| 264 | echo "The fragment redefined a value and strict mode had been passed." | 275 | echo "The fragment redefined a value and strict mode had been passed." |