summaryrefslogtreecommitdiff
path: root/src/s2wasm-main.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-01-04 20:35:00 -0500
committerAlon Zakai <alonzakai@gmail.com>2016-01-04 20:35:00 -0500
commitaea8cbf812299d85567daf9eaeca4543ede43192 (patch)
tree12d17839aad94c8f14ab29783e0596d2704e7f36 /src/s2wasm-main.cpp
parent4abf3e03f772348e193f00219da8b2f0baa454ee (diff)
parent3f4b5c1a4286ced0f1ffab14226246fe8b83b89e (diff)
downloadbinaryen-aea8cbf812299d85567daf9eaeca4543ede43192.tar.gz
binaryen-aea8cbf812299d85567daf9eaeca4543ede43192.tar.bz2
binaryen-aea8cbf812299d85567daf9eaeca4543ede43192.zip
Merge pull request #63 from WebAssembly/support-file
Move file input / output to support.
Diffstat (limited to 'src/s2wasm-main.cpp')
-rw-r--r--src/s2wasm-main.cpp42
1 files changed, 4 insertions, 38 deletions
diff --git a/src/s2wasm-main.cpp b/src/s2wasm-main.cpp
index a7060dd6e..d8faa29f1 100644
--- a/src/s2wasm-main.cpp
+++ b/src/s2wasm-main.cpp
@@ -19,6 +19,7 @@
//
#include "support/command-line.h"
+#include "support/file.h"
#include "s2wasm.h"
using namespace cashew;
@@ -42,43 +43,8 @@ int main(int argc, const char *argv[]) {
});
options.parse(argc, argv);
- std::string input;
- {
- if (options.debug) {
- std::cerr << "Loading '" << options.extra["infile"] << "'..."
- << std::endl;
- }
- std::ifstream infile(options.extra["infile"]);
- if (!infile.is_open()) {
- std::cerr << "Failed opening '" << options.extra["infile"] << "'"
- << std::endl;
- exit(EXIT_FAILURE);
- }
- infile.seekg(0, std::ios::end);
- size_t insize = infile.tellg();
- input.resize(insize + 1);
- infile.seekg(0);
- infile.read(&input[0], insize);
- }
-
- std::streambuf *buffer;
- std::ofstream outfile;
- if (options.extra["output"].size()) {
- if (options.debug) {
- std::cerr << "Opening '" << options.extra["output"] << std::endl;
- }
- outfile.open(options.extra["output"],
- std::ofstream::out | std::ofstream::trunc);
- if (!outfile.is_open()) {
- std::cerr << "Failed opening '" << options.extra["output"] << "'"
- << std::endl;
- exit(EXIT_FAILURE);
- }
- buffer = outfile.rdbuf();
- } else {
- buffer = std::cout.rdbuf();
- }
- std::ostream out(buffer);
+ std::string input(read_file(options.extra["infile"], options.debug));
+ Output output(options.extra["output"], options.debug);
if (options.debug) std::cerr << "Parsing and wasming..." << std::endl;
AllocatingModule wasm;
@@ -93,7 +59,7 @@ int main(int argc, const char *argv[]) {
s2wasm.emscriptenGlue(meta);
if (options.debug) std::cerr << "Printing..." << std::endl;
- out << wasm << meta.str() << std::endl;
+ output << wasm << meta.str() << std::endl;
if (options.debug) std::cerr << "Done." << std::endl;
}