blob: 223ef755dd1c5769c35b08c8f99f059263b6f4f5 [file] [log] [blame]
#!/bin/sh
# Ensure some files have been passed.
if [ -z "$*" ]; then
echo "Usage: $0 [whitelist_files+]" >&2
exit 1
fi
cat << EOF
#include <ipmiallowlist.hpp>
const std::vector<netfncmd_pair> whitelist = {
EOF
# Output each row of whitelist vector.
# Concatenate all the passed files.
# Remove comments and empty lines.
# Sort the list [numerically].
# Remove any duplicates.
# Turn "a:b //<NetFn>:<Command>" -> "{ a, b }, //<NetFn>:<Command>"
sed "s/#.*//" "$*" | sed '/^$/d' | sort -n | uniq | sed "s/^/ { /" | \
sed "s/\:\(....\)\(.*\)/ , \1 }, \2/"
cat << EOF
};
EOF