1064f039fSPatrick Williams#!/bin/sh
29a61b4f4STom Joseph
39a61b4f4STom Joseph# Ensure some files have been passed.
4064f039fSPatrick Williamsif [ -z "$*" ]; then
59a61b4f4STom Joseph    echo "Usage: $0 [whitelist_files+]" >&2
6064f039fSPatrick Williams    exit 1
79a61b4f4STom Josephfi
89a61b4f4STom Joseph
99a61b4f4STom Josephcat << EOF
10*68d9d405SMatt Simmering#include <ipmiallowlist.hpp>
119a61b4f4STom Joseph
129a61b4f4STom Josephconst std::vector<netfncmd_pair> whitelist = {
139a61b4f4STom Joseph
149a61b4f4STom JosephEOF
159a61b4f4STom Joseph
169a61b4f4STom Joseph# Output each row of whitelist vector.
179a61b4f4STom Joseph# Concatenate all the passed files.
189a61b4f4STom Joseph# Remove comments and empty lines.
199a61b4f4STom Joseph# Sort the list [numerically].
209a61b4f4STom Joseph# Remove any duplicates.
219a61b4f4STom Joseph# Turn "a:b //<NetFn>:<Command>" -> "{ a, b }, //<NetFn>:<Command>"
22064f039fSPatrick Williamssed "s/#.*//" "$*" | sed '/^$/d' | sort -n | uniq | sed "s/^/    { /" | \
239a61b4f4STom Joseph    sed "s/\:\(....\)\(.*\)/ , \1 }, \2/"
249a61b4f4STom Joseph
259a61b4f4STom Josephcat << EOF
269a61b4f4STom Joseph};
279a61b4f4STom JosephEOF
28