1*9a61b4f4STom Joseph#/bin/sh
2*9a61b4f4STom Joseph
3*9a61b4f4STom Joseph# Ensure some files have been passed.
4*9a61b4f4STom Josephif [ "x$*" == "x" ]; then
5*9a61b4f4STom Joseph    echo "Usage: $0 [whitelist_files+]" >&2
6*9a61b4f4STom Joseph    exit -1
7*9a61b4f4STom Josephfi
8*9a61b4f4STom Joseph
9*9a61b4f4STom Josephcat << EOF
10*9a61b4f4STom Joseph#include <ipmiwhitelist.H>
11*9a61b4f4STom Joseph
12*9a61b4f4STom Josephconst std::vector<netfncmd_pair> whitelist = {
13*9a61b4f4STom Joseph
14*9a61b4f4STom JosephEOF
15*9a61b4f4STom Joseph
16*9a61b4f4STom Joseph# Output each row of whitelist vector.
17*9a61b4f4STom Joseph# Concatenate all the passed files.
18*9a61b4f4STom Joseph# Remove comments and empty lines.
19*9a61b4f4STom Joseph# Sort the list [numerically].
20*9a61b4f4STom Joseph# Remove any duplicates.
21*9a61b4f4STom Joseph# Turn "a:b //<NetFn>:<Command>" -> "{ a, b }, //<NetFn>:<Command>"
22*9a61b4f4STom Josephcat $* | sed "s/#.*//" | sed '/^$/d' | sort -n | uniq | sed "s/^/    { /" | \
23*9a61b4f4STom Joseph    sed "s/\:\(....\)\(.*\)/ , \1 }, \2/"
24*9a61b4f4STom Joseph
25*9a61b4f4STom Josephcat << EOF
26*9a61b4f4STom Joseph};
27*9a61b4f4STom JosephEOF
28