+++ /dev/null
-#! /usr/bin/env lua
-
-local lfs = require( "lfs" )
-
-local all = {
- "#include \"../../../src/monocypher.h\"",
- "#include \"../../../src/optional/monocypher-ed25519.h\"",
- "#include <stdlib.h>",
- "int main() {",
-}
-
-local function AddExamples( man )
- for code in man:gmatch( "%.Bd[^\n]*\n(.-)%.Ed" ) do
- table.insert( all, "{" )
- table.insert( all, code )
- table.insert( all, "}" )
- end
-end
-
-local function AddDir( path )
- for file in lfs.dir( path ) do
- local attr = lfs.symlinkattributes( path .. "/" .. file )
- if file:match( "%.3monocypher$" ) and attr.mode == "file" then
- table.insert( all, "// " .. path .. "/" .. file )
-
- local f = assert( io.open( path .. "/" .. file, "r" ) )
- local contents = assert( f:read( "*all" ) )
- f:close()
-
- AddExamples( contents )
-
- table.insert( all, "" )
- end
- end
-end
-
-AddDir( "." )
-AddDir( "optional" )
-
-table.insert( all, "}" )
-
-print( table.concat( all, "\n" ) )
--- /dev/null
+#! /bin/sh
+
+cat << END
+#include <stdio.h>
+#include <stdlib.h>
+#include "../src/monocypher.h"
+#include "../src/optional/monocypher-ed25519.h"
+
+typedef struct SHA2_CTX { } SHA2_CTX;
+void SHA512Init(SHA2_CTX*);
+void SHA512Update(SHA2_CTX*, void*, size_t);
+void SHA512Final(uint8_ *, SHA2_CTX*);
+void arc4random_buf(void *, size_t);
+
+int main() {
+END
+
+for f in man/man3/*.3monocypher man/man3/optional/*.3monocypher; do
+ if ! [ -L "$f" ]; then
+ echo "// $f"
+ sed -n "/^\.Bd/,/^\.Ed/p" < $f | sed "s/\.Bd.*/{/" | sed "s/\.Ed/}/"
+ fi
+done
+
+echo "}"