summaryrefslogtreecommitdiff
path: root/tools/aapt/Command.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/aapt/Command.cpp')
-rw-r--r--tools/aapt/Command.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp
index 41d8502c5331..1e9e3e20ddf8 100644
--- a/tools/aapt/Command.cpp
+++ b/tools/aapt/Command.cpp
@@ -23,6 +23,10 @@
#include <errno.h>
#include <fcntl.h>
+#include <iostream>
+#include <string>
+#include <sstream>
+
using namespace android;
#ifndef AAPT_VERSION
@@ -2506,6 +2510,37 @@ int doSingleCrunch(Bundle* bundle)
return NO_ERROR;
}
+int runInDaemonMode(Bundle* bundle) {
+ std::cout << "Ready" << std::endl;
+ for (std::string line; std::getline(std::cin, line);) {
+ if (line == "quit") {
+ return NO_ERROR;
+ }
+ std::stringstream ss;
+ ss << line;
+ std::string s;
+
+ std::string command, parameterOne, parameterTwo;
+ std::getline(ss, command, ' ');
+ std::getline(ss, parameterOne, ' ');
+ std::getline(ss, parameterTwo, ' ');
+ if (command[0] == 's') {
+ bundle->setSingleCrunchInputFile(parameterOne.c_str());
+ bundle->setSingleCrunchOutputFile(parameterTwo.c_str());
+ std::cout << "Crunching " << parameterOne << std::endl;
+ if (doSingleCrunch(bundle) != NO_ERROR) {
+ std::cout << "Error" << std::endl;
+ }
+ std::cout << "Done" << std::endl;
+ } else {
+ // in case of invalid command, just bail out.
+ std::cerr << "Unknown command" << std::endl;
+ return -1;
+ }
+ }
+ return -1;
+}
+
char CONSOLE_DATA[2925] = {
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32, 32, 32, 95, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32,