xref: /openbmc/phosphor-host-ipmid/generate_whitelist.sh (revision 3aaddc7b1d6e76ddf1a672bfb48c560dabd22c51)
1064f039fSPatrick Williams#!/bin/sh
29a61b4f4STom Joseph
39a61b4f4STom Joseph# Ensure some files have been passed.
4064f039fSPatrick Williamsif [ -z "$*" ]; then
5*3aaddc7bSPatrick Williams    echo "Usage: $0 [allowlist_files+]" >&2
6064f039fSPatrick Williams    exit 1
79a61b4f4STom Josephfi
89a61b4f4STom Joseph
99a61b4f4STom Josephcat << EOF
1068d9d405SMatt Simmering#include <ipmiallowlist.hpp>
119a61b4f4STom Joseph
12deeceae3SKonstantin Aladyshevconst std::vector<netfncmd_pair> allowlist = {
139a61b4f4STom Joseph
149a61b4f4STom JosephEOF
159a61b4f4STom Joseph
16*3aaddc7bSPatrick Williams# Output each row of allowlist 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