diff options
author | terminaldweller <thabogre@gmail.com> | 2021-05-14 18:14:50 +0000 |
---|---|---|
committer | terminaldweller <thabogre@gmail.com> | 2021-05-14 18:14:50 +0000 |
commit | 6e528248414e330c9e25e81596ab47b8b8a5b701 (patch) | |
tree | e1aa41a7f3198eeac187e6177ec7d4a33db229d3 /compiler-explorer/main.js | |
download | scripts-6e528248414e330c9e25e81596ab47b8b8a5b701.tar.gz scripts-6e528248414e330c9e25e81596ab47b8b8a5b701.zip |
first commitmaster
Diffstat (limited to '')
-rw-r--r-- | compiler-explorer/main.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/compiler-explorer/main.js b/compiler-explorer/main.js new file mode 100644 index 0000000..1b142c3 --- /dev/null +++ b/compiler-explorer/main.js @@ -0,0 +1,45 @@ + +const fetch = require('node-fetch') +const fs = require("fs") +const util = require("util") +const readFile = util.promisify(fs.readFile) +const path = require("path") +const defaultOpts = { +"userArguments":"-O3", "filters": + {"binary":false, + "commentOnly":true, + "demangle":true, + "directives":true, + "execute":false, + "intel":true, + "labels":true, + "lables":true, + "libraryCode":false, + "trim":false + } +} + +async function read_C_source(path) { + return await readFile(path, "utf-8") +} + +function JSON_POST_req(data, options) { + const config = fs.readFileSync(options, "utf-8") + var dummy = {"source": data, "options": JSON.parse(config)} + /* if no config found, then run default + var dummy = {"source": data, "options": defaultOpts} + */ + return {method:"POST", body:JSON.stringify(dummy), headers:{"Content-Type":"application/json"}} +} + +function compiler_explorer(path, options) { + read_C_source(path).then(data=> + JSON_POST_req(data, options)).then(post_arg=> + fetch("https://godbolt.org/api/compiler/g92/compile", post_arg)).then(res=> + res.text()).then(body=> + console.log(body.split("\n").slice(1,body.split("\n").length).join("\n"))).catch(error=> + console.log(error)) +} + +if (process.argv.length < 3) {console.log("you did not specify enough args. needs two. path to source code and path to options to pass to compiler explorer.")} +else {compiler_explorer(process.argv[2], process.argv[3])} |