feosync
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:Sync your FEOSDEST to your SD root!
# FeOSync

This is a sync daemon/client for [FeOS](https://github.com/fincs/FeOS "FeOS").

## Prerequisites

- [FeOS](https://github.com/fincs/FeOS "FeOS")
- [zlib](http://zlib.net "zlib")
- [OpenSSL](http://www.openssl.org "OpenSSL")

## Installation

### Windows

Support for Windows is included via MinGW. If you already have FeOS and its
prerequisites installed, you will have MinGW.

#### Installing OpenSSL for MinGW

Open the MinGW shell by going to Start -> Programs -> devkitPro -> MSys
In the prompt, use the following commands:

    mingw-get install msys-libopenssl
    cp -r /c/MinGW/msys/1.0/include/openssl /mingw/include
    cp -r /c/MinGW/msys/1.0/lib/openssl /mingw/lib
    cp /c/MinGW/msys/1.0/bin/msys-crypto-1.0.0.dll /mingw/bin
    cp /c/MinGW/msys/1.0/bin/msys-ssl-1.0.0.dll /mingw/bin

#### Installing zlib for MinGW

A similar approach to installing OpenSSL does not work. The zlib you get from
`mingw-get` will crash. Instead, I had to download and build from source.
Download from [zlib.net](http://zlib.net "zlib.net"), then perform the
following commands:

    tar -xzf zlib-1.2.7.tar.gz
    cd zlib-1.2.7
    make -f win32/Makefile.gcc
    cp zconf.h zlib.h /mingw/include
    cp zlib1.dll /mingw/bin
    cp libz.a libz.dll.a /mingw/lib

#### Installing FeOSync

In the feosync directory, perform the following commands:

    make
    make install

### Normal Operating Systems

#### Installing zlib and OpenSSL

Getting zlib and OpenSSL are fairly straightforward depending on your Operating
System. In the worst case, you will need to download and build from source
using the standard `./configure && make && make install`.

#### Installing FeOSync

In the feosync directory, perform the following commands:

    make
    make install

## Usage

FeOSync consists of two programs:

- A daemon that runs in FeOS
- A client that runs on your PC

### Using the daemon

The FeOSync daemon simply has two commands:

    feosync start
    feosync stop

Obviously, the first starts the daemon, and the second stops it. If no argument
is provided, then it is identical to `feosync start`. This will spawn the
FeOSync daemon, which will happily run in the background while you enjoy other
applications. It is designed to have minimal impact on foreground applications.

`feosync stop` simply tells the daemon to quit. It will finish any currently
running sync job before exiting.

### Using the client

The FeOSync client has only one command:

    feosync  [host]

The client will switch to the provided directory, then it will connect to the
daemon and begin the sync process. It will clone the provided directory to the
root of the storage device where FeOS resides. Therefore, it is best to provide
$FEOSDEST as the directory for updating FeOS. For copying other data, such as
music or programs, the directory chosen must have a layout that you want to
put onto the storage card.

If no host is provided, the client will attempt to autodiscover the daemon by
listening for the broadcast packets. If a host is provided, then the client
will attempt to connect immediately without listening for the broadcast.

### The sync process

Synchronization occurs in a very straightforward manner. The daemon sits idly,
broadcasting itself so that the client can discover it. It also listens for
incoming connections. The client will listen for the broadcasts, and then
connect to the daemon when it receives one.

First, the client will send a list of directories to the daemon, which will
create the directories if they do not exist. Then, the client will send
filenames to the daemon to check for data mismatches. Both the client and
daemon will checksum the file. If the file does not exist on the daemon side,
or if the md5sum does not match, then the client will send the file
(compressed with zlib to minimize network traffic), and the daemon will
decompress it onto the storage medium. Once all of the files have been updated,
the client will disconnect from the daemon, and the daemon will resume
broadcasting and listening for connections.

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。