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
|
||||
|
||||
|
||||
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\util.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\README.md" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="..\..\LICENSE.txt" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
||||
@@ -51,4 +51,10 @@
|
||||
<Filter>Archivos de encabezado</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\README.md" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="..\..\LICENSE.txt" />
|
||||
</ItemGroup>
|
||||
</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 check [dir]\n", exeFilename);
|
||||
printff("\n");
|
||||
printff(" %s sync [dirIzquierda] [dirDerecha]\n", exeFilename);
|
||||
printff(" %s resync [dirIzquierda] [dirDerecha]\n", exeFilename);
|
||||
printff(" %s synctest [dirIzquierda] [dirDerecha]\n", exeFilename);
|
||||
printff(" %s resynctest [dirIzquierda] [dirDerecha]\n", exeFilename);
|
||||
printff(" %s sync [dirA] [dirB]\n", exeFilename);
|
||||
printff(" %s resync [dirA] [dirB]\n", exeFilename);
|
||||
printff(" %s synctest [dirA] [dirB]\n", exeFilename);
|
||||
printff(" %s resynctest [dirA] [dirB]\n", exeFilename);
|
||||
printff("\n");
|
||||
printff(" %s copy [dirIzquierda] [dirDerecha]\n", exeFilename);
|
||||
printff(" %s recopy [dirIzquierda] [dirDerecha]\n", exeFilename);
|
||||
printff(" %s copytest [dirIzquierda] [dirDerecha]\n", exeFilename);
|
||||
printff(" %s recopytest [dirIzquierda] [dirDerecha]\n", exeFilename);
|
||||
printff(" %s copy [dirA] [dirB]\n", exeFilename);
|
||||
printff(" %s recopy [dirA] [dirB]\n", exeFilename);
|
||||
printff(" %s copytest [dirA] [dirB]\n", exeFilename);
|
||||
printff(" %s recopytest [dirA] [dirB]\n", exeFilename);
|
||||
}
|
||||
|
||||
FileNode CheckDir(char *path, int recheck);
|
||||
|
||||
Reference in New Issue
Block a user