5 |
|
// $Id$ |
6 |
|
|
7 |
|
#include "Syncify.hpp" |
8 |
+ |
#include "SambaReader.hpp" |
9 |
|
|
10 |
|
#include <menes-api/exename.hpp> |
11 |
|
#include <menes-app/simple.hpp> |
79 |
|
ext::String Syncify::program(api::GetExecutablePath().GetName()); |
80 |
|
bool Syncify::debug(false); |
81 |
|
|
82 |
< |
void Syncify::syncify(const ext::String& local, const ext::String& remote) |
82 |
> |
void Syncify::syncify(const api::Path& local, const ext::String& remote) |
83 |
|
{ |
84 |
|
try |
85 |
|
{ |
92 |
|
case SMBC_FILE: |
93 |
|
if (entity->name == pattern) |
94 |
|
{ |
95 |
< |
api::Cout << entity->name << ios::NewLine; |
95 |
> |
api::Path path(local.GetChild(entity->name)); |
96 |
> |
|
97 |
> |
if (!path.Exists()) |
98 |
> |
{ |
99 |
> |
SambaReader samba(remote + "/" + entity->name); |
100 |
> |
api::FileWriter file(path.GetPath()); |
101 |
> |
|
102 |
> |
ios::ReadToWrite(samba, file); |
103 |
> |
} |
104 |
|
} |
105 |
|
break; |
106 |
|
case SMBC_DIR: |
112 |
|
::smbc_closedir(directory); |
113 |
|
|
114 |
|
_foreach (const ext::RedBlackSet<ext::String>, directory, directories) |
115 |
< |
syncify(local + "/" + *directory, remote + "/" + *directory); |
115 |
> |
syncify(local.GetChild(*directory), remote + "/" + *directory); |
116 |
|
} |
117 |
|
catch (const Error& error) |
118 |
|
{ |