summaryrefslogtreecommitdiff
path: root/src/s2wasm-main.cpp
diff options
context:
space:
mode:
authorJF Bastien <jfb@chromium.org>2016-01-04 17:11:16 -0800
committerJF Bastien <jfb@chromium.org>2016-01-04 17:11:16 -0800
commit3f4b5c1a4286ced0f1ffab14226246fe8b83b89e (patch)
tree7c12085c44846c280ccc83b3160d45796cf764cb /src/s2wasm-main.cpp
parentc6d08d97c196e2ceae5e3b960befcd6c66916cad (diff)
downloadbinaryen-3f4b5c1a4286ced0f1ffab14226246fe8b83b89e.tar.gz
binaryen-3f4b5c1a4286ced0f1ffab14226246fe8b83b89e.tar.bz2
binaryen-3f4b5c1a4286ced0f1ffab14226246fe8b83b89e.zip
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;
}