Move mkdirs to adb_utils.
There were duplicate implementations in commandline.cpp and
file_sync_client.cpp.
Change-Id: Ib448f76c0d7ffdcd577336b1c610a881425bc2db
diff --git a/adb/adb_utils.cpp b/adb/adb_utils.cpp
index 604bd57..4b97a14 100644
--- a/adb/adb_utils.cpp
+++ b/adb/adb_utils.cpp
@@ -63,6 +63,25 @@
return result;
}
+int mkdirs(const char *path)
+{
+ int ret;
+ char *x = (char *)path + 1;
+
+ for(;;) {
+ x = adb_dirstart(x);
+ if(x == 0) return 0;
+ *x = 0;
+ ret = adb_mkdir(path, 0775);
+ *x = OS_PATH_SEPARATOR;
+ if((ret < 0) && (errno != EEXIST)) {
+ return ret;
+ }
+ x++;
+ }
+ return 0;
+}
+
void dump_hex(const void* data, size_t byte_count) {
byte_count = std::min(byte_count, size_t(16));
diff --git a/adb/adb_utils.h b/adb/adb_utils.h
index 84f7d0c..c816d00 100644
--- a/adb/adb_utils.h
+++ b/adb/adb_utils.h
@@ -22,6 +22,8 @@
bool getcwd(std::string* cwd);
bool directory_exists(const std::string& path);
+int mkdirs(const char *path);
+
std::string escape_arg(const std::string& s);
void dump_hex(const void* ptr, size_t byte_count);
diff --git a/adb/commandline.cpp b/adb/commandline.cpp
index 4adac37..4e0db2b 100644
--- a/adb/commandline.cpp
+++ b/adb/commandline.cpp
@@ -724,25 +724,6 @@
return send_shell_command(transport, serial, cmd);
}
-static int mkdirs(const char *path)
-{
- int ret;
- char *x = (char *)path + 1;
-
- for(;;) {
- x = adb_dirstart(x);
- if(x == 0) return 0;
- *x = 0;
- ret = adb_mkdir(path, 0775);
- *x = OS_PATH_SEPARATOR;
- if((ret < 0) && (errno != EEXIST)) {
- return ret;
- }
- x++;
- }
- return 0;
-}
-
static int backup(int argc, const char** argv) {
const char* filename = "./backup.ab";
diff --git a/adb/file_sync_client.cpp b/adb/file_sync_client.cpp
index 1dc711ae..49d42a3 100644
--- a/adb/file_sync_client.cpp
+++ b/adb/file_sync_client.cpp
@@ -32,6 +32,7 @@
#include "adb.h"
#include "adb_client.h"
#include "adb_io.h"
+#include "adb_utils.h"
#include "file_sync_service.h"
static unsigned long long total_bytes;
@@ -395,25 +396,6 @@
return -1;
}
-static int mkdirs(const char *name)
-{
- int ret;
- char *x = (char *)name + 1;
-
- for(;;) {
- x = adb_dirstart(x);
- if(x == 0) return 0;
- *x = 0;
- ret = adb_mkdir(name, 0775);
- *x = OS_PATH_SEPARATOR;
- if((ret < 0) && (errno != EEXIST)) {
- return ret;
- }
- x++;
- }
- return 0;
-}
-
static int sync_recv(int fd, const char* rpath, const char* lpath, int show_progress) {
syncmsg msg;
int len;