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