summaryrefslogtreecommitdiffstats
path: root/twrpTarMain
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--twrpTarMain/Android.mk13
-rw-r--r--twrpTarMain/twrpTarMain.cpp50
2 files changed, 55 insertions, 8 deletions
diff --git a/twrpTarMain/Android.mk b/twrpTarMain/Android.mk
index 5a1a4434f..c88351bd8 100644
--- a/twrpTarMain/Android.mk
+++ b/twrpTarMain/Android.mk
@@ -8,18 +8,21 @@ LOCAL_SRC_FILES:= \
../twrp-functions.cpp \
../twrpTar.cpp \
../tarWrite.c \
- ../twrpDU.cpp
+ ../twrpDU.cpp \
+ ../progresstracking.cpp \
+ ../gui/twmsg.cpp
LOCAL_CFLAGS:= -g -c -W -DBUILD_TWRPTAR_MAIN
LOCAL_C_INCLUDES += bionic
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23; echo $$?),0)
- LOCAL_C_INCLUDES += external/stlport/stlport
+ LOCAL_C_INCLUDES += external/stlport/stlport bionic/libstdc++/include
endif
-LOCAL_STATIC_LIBRARIES := libc libtar_static libstdc++
+LOCAL_STATIC_LIBRARIES := libc libtar_static
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23; echo $$?),0)
LOCAL_STATIC_LIBRARIES += libstlport_static
endif
+LOCAL_STATIC_LIBRARIES += libstdc++
ifeq ($(TWHAVE_SELINUX), true)
LOCAL_C_INCLUDES += external/libselinux/include
@@ -51,7 +54,9 @@ LOCAL_SRC_FILES:= \
../twrp-functions.cpp \
../twrpTar.cpp \
../tarWrite.c \
- ../twrpDU.cpp
+ ../twrpDU.cpp \
+ ../progresstracking.cpp \
+ ../gui/twmsg.cpp
LOCAL_CFLAGS:= -g -c -W -DBUILD_TWRPTAR_MAIN
LOCAL_C_INCLUDES += bionic external/stlport/stlport
diff --git a/twrpTarMain/twrpTarMain.cpp b/twrpTarMain/twrpTarMain.cpp
index 6cc629d7d..ff35f47ce 100644
--- a/twrpTarMain/twrpTarMain.cpp
+++ b/twrpTarMain/twrpTarMain.cpp
@@ -20,10 +20,52 @@
#include "../twrp-functions.hpp"
#include "../twrpTar.hpp"
#include "../twrpDU.hpp"
+#include "../progresstracking.hpp"
+#include "../gui/gui.hpp"
+#include "../gui/twmsg.h"
#include <string.h>
twrpDU du;
+void gui_msg(const char* text)
+{
+ if (text) {
+ Message msg = Msg(text);
+ gui_msg(msg);
+ }
+}
+
+void gui_warn(const char* text)
+{
+ if (text) {
+ Message msg = Msg(msg::kWarning, text);
+ gui_msg(msg);
+ }
+}
+
+void gui_err(const char* text)
+{
+ if (text) {
+ Message msg = Msg(msg::kError, text);
+ gui_msg(msg);
+ }
+}
+
+void gui_highlight(const char* text)
+{
+ if (text) {
+ Message msg = Msg(msg::kHighlight, text);
+ gui_msg(msg);
+ }
+}
+
+void gui_msg(Message msg)
+{
+ std::string output = msg;
+ output += "\n";
+ fputs(output.c_str(), stdout);
+}
+
void usage() {
printf("twrpTar <action> [options]\n\n");
printf("actions: -c create\n");
@@ -34,7 +76,7 @@ void usage() {
printf(" -z compress backup (/sbin/pigz must be present)\n");
#ifndef TW_EXCLUDE_ENCRYPTED_BACKUPS
printf(" -e encrypt/decrypt backup followed by password (/sbin/openaes must be present)\n");
- printf(" -u encrypt using userdata encryption (must be used with -e\n");
+ printf(" -u encrypt using userdata encryption (must be used with -e)\n");
#endif
printf("\n\n");
printf("Example: twrpTar -c -d /cache -t /sdcard/test.tar\n");
@@ -47,7 +89,7 @@ int main(int argc, char **argv) {
int i, action = 0;
unsigned j;
string Directory, Tar_Filename;
- unsigned long long temp1 = 0, temp2 = 0;
+ ProgressTracking progress(1);
pid_t tar_fork_pid = 0;
#ifndef TW_EXCLUDE_ENCRYPTED_BACKUPS
string Password;
@@ -144,14 +186,14 @@ int main(int argc, char **argv) {
}
#endif
if (action == 1) {
- if (tar.createTarFork(&temp1, &temp2, tar_fork_pid) != 0) {
+ if (tar.createTarFork(&progress, tar_fork_pid) != 0) {
sync();
return -1;
}
sync();
printf("\n\ntar created successfully.\n");
} else if (action == 2) {
- if (tar.extractTarFork(&temp1, &temp2) != 0) {
+ if (tar.extractTarFork(&progress) != 0) {
sync();
return -1;
}