forked from gsingh93/linux-exploit-dev-env
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcheck_merged_config.sh
executable file
·43 lines (33 loc) · 1.01 KB
/
check_merged_config.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash
set -e
CONFIG_PREFIX=${CONFIG_:-CONFIG_}
SED_CONFIG_EXP1="s/^\(${CONFIG_PREFIX}[a-zA-Z0-9_]*\)=.*/\1/p"
SED_CONFIG_EXP2="s/^# \(${CONFIG_PREFIX}[a-zA-Z0-9_]*\) is not set$/\1/p"
YELLOW='\033[0;33m'
NC='\033[0m'
warn() {
echo -e "${YELLOW}$1${NC}"
}
usage() {
echo "Usage: $0 CONFIG_FILE FRAGMENT_FILE"
echo
echo "Used prefix: '$CONFIG_PREFIX'. You can redefine it with \$CONFIG_ environment variable."
}
if [ "$#" -ne 2 ] ; then
usage
exit 1
fi
CONFIG_FILE="$1"
FRAGMENT_FILE="$2"
warn "Checking merged config"
for CFG in $(sed -n -e "$SED_CONFIG_EXP1" -e "$SED_CONFIG_EXP2" "$FRAGMENT_FILE"); do
REQUESTED_VAL=$(grep -w -e "$CFG" "$FRAGMENT_FILE")
ACTUAL_VAL=$(grep -w -e "$CFG" "$CONFIG_FILE" || true)
if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then
warn "Value requested for $CFG not in final .config"
warn "Requested value: $REQUESTED_VAL"
warn "Actual value: $ACTUAL_VAL"
echo ""
fi
done
warn "Finished checking merged config"