README
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
he MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2014-2015 Valeriano Alfonso Rodriguez
|
Copyright (c) 2014-2015 Valeriano Alfonso Rodriguez
|
||||||
|
|
||||||
|
|||||||
19
NOTAS.txt
19
NOTAS.txt
@@ -1,19 +0,0 @@
|
|||||||
|
|
||||||
POR HACER
|
|
||||||
=========
|
|
||||||
* Demonio
|
|
||||||
* GUI
|
|
||||||
* Testeos unitarios
|
|
||||||
|
|
||||||
|
|
||||||
HECHO
|
|
||||||
=====
|
|
||||||
* CRC de ficheros (CRC_File en crc.h)
|
|
||||||
* Lectura y Escritura de fechas de ficheros (FileTime end fileutil.h)
|
|
||||||
* Utilidades de ficheros (fileutil.h)
|
|
||||||
* Representacion de arboles de directorios que contienen informacion
|
|
||||||
de cada fichero; crc, fecha, estado (FileNode en filenode.h)
|
|
||||||
* Scaneo, construccion y reconstruccion de arboles FileNode, detectando cambios.
|
|
||||||
* Comparador de FileNodes que genere una lista de AccionFileCmp (filenodecmp.h)
|
|
||||||
* Realizar las acciones especificadas por la lista de AccionFileCmp
|
|
||||||
|
|
||||||
78
README.md
Normal file
78
README.md
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
# FileSync
|
||||||
|
Simple local filesystem file synchronization. For use with external devices (usbdisk) and SneakerNet like usage.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
Copy the resulting executable to the desired location.
|
||||||
|
|
||||||
|
The executable is completelly portable, there are no dependencies.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
Basic usage to syncronize two directories, dirA and dirB:
|
||||||
|
|
||||||
|
filesync sync dirA dirB
|
||||||
|
|
||||||
|
To make a efficient copy from dirA to dirB:
|
||||||
|
|
||||||
|
filesync copy dirA dirB
|
||||||
|
|
||||||
|
The rest of options are listed with no parameters:
|
||||||
|
|
||||||
|
$ filesync
|
||||||
|
Usage:
|
||||||
|
filesync info [file] {[file] {..}}
|
||||||
|
filesync scan [dir] [tree]
|
||||||
|
filesync rescan [dir] [tree]
|
||||||
|
filesync read [file] [tree]
|
||||||
|
filesync dir [dir]
|
||||||
|
filesync check [dir]
|
||||||
|
|
||||||
|
filesync sync [dirA] [dirB]
|
||||||
|
filesync resync [dirA] [dirB]
|
||||||
|
filesync synctest [dirA] [dirB]
|
||||||
|
filesync resynctest [dirA] [dirB]
|
||||||
|
|
||||||
|
filesync copy [dirA] [dirB]
|
||||||
|
filesync recopy [dirA] [dirB]
|
||||||
|
filesync copytest [dirA] [dirB]
|
||||||
|
filesync recopytest [dirA] [dirB]
|
||||||
|
|
||||||
|
## Building
|
||||||
|
There is a GNU Make compatible Makefile usable on Linux and MingGW.
|
||||||
|
|
||||||
|
make
|
||||||
|
|
||||||
|
A Visual Studio 2015 solution is also provided under `VisualStudio` subdirectory.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
1. Fork it!
|
||||||
|
2. Create your feature branch: `git checkout -b my-new-feature`
|
||||||
|
3. Commit your changes: `git commit -am 'Add some feature'`
|
||||||
|
4. Push to the branch: `git push origin my-new-feature`
|
||||||
|
5. Submit a pull request :D
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
* Valeriano Alfonso Rodriguez.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2014-2015 Valeriano Alfonso Rodriguez
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -135,6 +135,12 @@
|
|||||||
<ClInclude Include="..\..\src\fileutil.h" />
|
<ClInclude Include="..\..\src\fileutil.h" />
|
||||||
<ClInclude Include="..\..\src\util.h" />
|
<ClInclude Include="..\..\src\util.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="..\..\README.md" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Text Include="..\..\LICENSE.txt" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
|
|||||||
@@ -51,4 +51,10 @@
|
|||||||
<Filter>Archivos de encabezado</Filter>
|
<Filter>Archivos de encabezado</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="..\..\README.md" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Text Include="..\..\LICENSE.txt" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
16
src/main.c
16
src/main.c
@@ -19,15 +19,15 @@ void Help(char *exe) {
|
|||||||
printff(" %s dir [dir]\n", exeFilename);
|
printff(" %s dir [dir]\n", exeFilename);
|
||||||
printff(" %s check [dir]\n", exeFilename);
|
printff(" %s check [dir]\n", exeFilename);
|
||||||
printff("\n");
|
printff("\n");
|
||||||
printff(" %s sync [dirIzquierda] [dirDerecha]\n", exeFilename);
|
printff(" %s sync [dirA] [dirB]\n", exeFilename);
|
||||||
printff(" %s resync [dirIzquierda] [dirDerecha]\n", exeFilename);
|
printff(" %s resync [dirA] [dirB]\n", exeFilename);
|
||||||
printff(" %s synctest [dirIzquierda] [dirDerecha]\n", exeFilename);
|
printff(" %s synctest [dirA] [dirB]\n", exeFilename);
|
||||||
printff(" %s resynctest [dirIzquierda] [dirDerecha]\n", exeFilename);
|
printff(" %s resynctest [dirA] [dirB]\n", exeFilename);
|
||||||
printff("\n");
|
printff("\n");
|
||||||
printff(" %s copy [dirIzquierda] [dirDerecha]\n", exeFilename);
|
printff(" %s copy [dirA] [dirB]\n", exeFilename);
|
||||||
printff(" %s recopy [dirIzquierda] [dirDerecha]\n", exeFilename);
|
printff(" %s recopy [dirA] [dirB]\n", exeFilename);
|
||||||
printff(" %s copytest [dirIzquierda] [dirDerecha]\n", exeFilename);
|
printff(" %s copytest [dirA] [dirB]\n", exeFilename);
|
||||||
printff(" %s recopytest [dirIzquierda] [dirDerecha]\n", exeFilename);
|
printff(" %s recopytest [dirA] [dirB]\n", exeFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
FileNode CheckDir(char *path, int recheck);
|
FileNode CheckDir(char *path, int recheck);
|
||||||
|
|||||||
Reference in New Issue
Block a user