57 lines
1.9 KiB
Bash
57 lines
1.9 KiB
Bash
|
#/bin/sh
|
||
|
URL='https://www.cs.auckland.ac.nz/~pgut001/dumpasn1.cfg'
|
||
|
if [ -x /usr/bin/fetch ]; then
|
||
|
/usr/bin/fetch -m --no-verify-peer $URL
|
||
|
elif [ -x /usr/bin/wget ]; then
|
||
|
/usr/bin/wget -N --no-check-certificate $URL
|
||
|
elif [ ! -r dumpasn1.cfg ]; then
|
||
|
echo Please download $URL in this directory.
|
||
|
exit 1
|
||
|
fi
|
||
|
cat dumpasn1.cfg | \
|
||
|
tr -d '\r' | \
|
||
|
awk -v url="$URL" '
|
||
|
function clean() {
|
||
|
oid = "";
|
||
|
comment = "";
|
||
|
description = "";
|
||
|
warning = "";
|
||
|
}
|
||
|
BEGIN {
|
||
|
FS = "= *";
|
||
|
apos = sprintf("%c", 39);
|
||
|
clean();
|
||
|
print "// Converted from: " url;
|
||
|
print "// which is made by Peter Gutmann and whose license states:";
|
||
|
print "// You can use this code in whatever way you want,";
|
||
|
print "// as long as you don" apos "t try to claim you wrote it.";
|
||
|
print "(typeof define != " apos "undefined" apos " ? define : function (factory) { " apos "use strict" apos ";";
|
||
|
print " if (typeof module == " apos "object" apos ") module.exports = factory();";
|
||
|
print " else window.oids = factory();";
|
||
|
print "})(function () {";
|
||
|
print apos "use strict" apos ";";
|
||
|
print "return {";
|
||
|
}
|
||
|
/^OID/ { oid = $2; }
|
||
|
/^Comment/ { comment = $2; }
|
||
|
/^Description/ { description = $2; }
|
||
|
/^Warning/ { warning = ", \"w\": true"; }
|
||
|
/^$/ {
|
||
|
if (length(oid) > 0) {
|
||
|
gsub(" ", ".", oid);
|
||
|
gsub("\"", "\\\"", description);
|
||
|
gsub("\"", "\\\"", comment);
|
||
|
if (++seen[oid] > 1)
|
||
|
print "Duplicate OID in line " NR ": " oid > "/dev/stderr";
|
||
|
else
|
||
|
printf "\"%s\": { \"d\": \"%s\", \"c\": \"%s\"%s },\n", oid, description, comment, warning;
|
||
|
clean();
|
||
|
}
|
||
|
}
|
||
|
END {
|
||
|
print "\"END\": \"\""
|
||
|
print "};});"
|
||
|
}
|
||
|
' >oids.js
|
||
|
echo Conversion completed.
|