Ftp Sync 3DS: Difference between revisions

From GameBrew
(Created page with "{{Infobox-3DS-Homebrews | title = Ftp Sync | image = https://dlhb.gamebrew.org/3dshomebrew/Ftp-Sync-3DS.jpg|250px | type = PC Utilities | version = unknown | lastupdated = 202...")
 
m (Text replacement - "Category:PC utilities for 3DS homebrew" to "")
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox-3DS-Homebrews
{{Infobox 3DS Homebrews
| title = Ftp Sync
|title=Ftp Sync
| image = https://dlhb.gamebrew.org/3dshomebrew/Ftp-Sync-3DS.jpg|250px
|image=3dspc.png
| type = PC Utilities
|description=A tool to sync ROM saves over FTP.
| version = unknown
|author=branflakes2
| lastupdated = 2021/07/22
|lastupdated=2021/07/22
| licence = Mixed
|type=Save and Game Managers
| author = branflakes2
|version=2021
| website = https://github.com/branflakes2/ftp_sync
|license=Mixed
| download = https://dlhb.gamebrew.org/3dshomebrew/Ftp-Sync-3DS.rar
|download=https://dlhb.gamebrew.org/3dshomebrews/ftpsync.7z
| source = https://github.com/branflakes2/ftp_sync
|website=https://github.com/branflakes2/ftp_sync
|source=https://github.com/branflakes2/ftp_sync
}}
}}
<youtube></youtube>
This is a ftp syncing python package that can sync file pairs over ftp and apply patches to them. Useful for using [[ftpd 3DS|ftpd]] to transfer ROM save files to and from your DS if you also play on an emulator. Setup a cron job to check for your DS's ftp server periodically to setup automatic syncing.


# ftp sync
==Installation==
 
Clone this repo, cd into it, run <code>pip3 install</code>.
Sync file pairs over ftp and apply patches to them. Useful for using [ftpd](https://github.com/mtheall/ftpd) to transfer ROM save files to and from your DS if you also play on an emulator. Setup a cron job to check for your DS's ftp server periodically to setup automatic syncing.
 
## Installation
 
Clone this repo, cd into it, `pip3 install .`
 
## Config file format


==User guide==
===Config file format===
Default config file location:
Default config file location:
- Windows: `Documents\ftp_sync\ftp_sync.yaml`
* Windows: Documents\ftp_sync\ftp_sync.yaml
- Linux/MacOS: `~/.config/ftp_sync/ftp_sync.yaml`
* Linux/MacOS: ~/.config/ftp_sync/ftp_sync.yaml


Use either yaml or json. An example yaml file is provided with all of the currently supported options.
Use either yaml or json. An example yaml file is provided with all of the currently supported options.
Line 31: Line 27:
If the patcher option is not specified, files will be transfered unmodified.
If the patcher option is not specified, files will be transfered unmodified.


## Automatic sync behavior
===Automatic sync behavior===
 
On your first run, you'll likely have to specify one of the to/from commands if both remote and local files exist.
On your first run, you'll likely have to specify one of the to/from commands if both remote and local files exist.
* Will sync if either remote or local file do not exist.
* Will sync if either local or remote files change, not both.
* Will not sync if both files change.


- Will sync if either remote or local file do not exist
===Usage===
- Will sync if either local or remote files change, not both.
python -m ftp_sync [OPTIONS] COMMAND [ARGS]...
- Will not sync if both files change
 
Options:
## Usage
-c, --config-file TEXT Yaml or json config file defining connection and sync pair settings
 
-d, --debug
```
--help Show this message and exit.
Usage: python -m ftp_sync [OPTIONS] COMMAND [ARGS]...
 
Commands:
Options:
sync Automatically sync a specified sync pair.
-c, --config-file TEXT Yaml or json config file defining connection and
sync-all Automatically sync all sync pairs.
sync pair settings
sync-all-from Sync all sync pairs remote to local.
-d, --debug
sync-all-to Sync all sync pairs local to remote.
--help Show this message and exit.
sync-from Sync a pair remote to local.
 
sync-to Sync a pair local to remote.
Commands:
sync Automatically sync a specified sync pair.
sync-all Automatically sync all sync pairs.
sync-all-from Sync all sync pairs remote to local.
sync-all-to Sync all sync pairs local to remote.
sync-from Sync a pair remote to local.
sync-to Sync a pair local to remote.
```
 
The singular sync commands (the ones that aren't sync-all\*) take a `-n/--name` argument which specifies the sync pair to use.
 
Ex: `python3 -m ftp_sync sync -n pokemon_pearl` will sync the `pokemon_pearl` sync pair in the example yaml file.


## Future work
The singular sync commands (the ones that aren't sync-all\*) take a <code>-n/--name</code> argument which specifies the sync pair to use.


- [x] Windows support
Ex: <code>python3 -m ftp_sync sync -n pokemon_pearl</code> will sync the <code>pokemon_pearl</code> sync pair in the example yaml file.
- [ ] Add directory sync support
- [ ] Sync between multiple sources/servers
- [ ] Cleanup old backup files
- [ ] Define and enforce config file schema
- [ ] Add more patchers (Would love to extract/inject saves from/to VC)
- [ ] Make this README better
- [ ] If enough people like this I'll consider adding it to pypi and turning this into a real REPO with CI, unit tests, etc
- [ ] Suggestions?


[[Category:PC utilities for 3DS homebrew]]
==External links==
[[Category:PC utilities for 3DS homebrew]]
* GitHub - https://github.com/branflakes2/ftp_sync

Latest revision as of 04:24, 6 May 2024

Ftp Sync
3dspc.png
General
Authorbranflakes2
TypeSave and Game Managers
Version2021
LicenseMixed
Last Updated2021/07/22
Links
Download
Website
Source

This is a ftp syncing python package that can sync file pairs over ftp and apply patches to them. Useful for using ftpd to transfer ROM save files to and from your DS if you also play on an emulator. Setup a cron job to check for your DS's ftp server periodically to setup automatic syncing.

Installation

Clone this repo, cd into it, run pip3 install.

User guide

Config file format

Default config file location:

  • Windows: Documents\ftp_sync\ftp_sync.yaml
  • Linux/MacOS: ~/.config/ftp_sync/ftp_sync.yaml

Use either yaml or json. An example yaml file is provided with all of the currently supported options.

If the patcher option is not specified, files will be transfered unmodified.

Automatic sync behavior

On your first run, you'll likely have to specify one of the to/from commands if both remote and local files exist.

  • Will sync if either remote or local file do not exist.
  • Will sync if either local or remote files change, not both.
  • Will not sync if both files change.

Usage

python -m ftp_sync [OPTIONS] COMMAND [ARGS]...

Options:
-c, --config-file TEXT Yaml or json config file defining connection and sync pair settings
-d, --debug
--help Show this message and exit.

Commands:
sync Automatically sync a specified sync pair.
sync-all Automatically sync all sync pairs.
sync-all-from Sync all sync pairs remote to local.
sync-all-to Sync all sync pairs local to remote.
sync-from Sync a pair remote to local.
sync-to Sync a pair local to remote.

The singular sync commands (the ones that aren't sync-all\*) take a -n/--name argument which specifies the sync pair to use.

Ex: python3 -m ftp_sync sync -n pokemon_pearl will sync the pokemon_pearl sync pair in the example yaml file.

External links

Advertising: