A simple tool for synchronizing local project (files) to remote server.
Project description
Project Sync
=======================
## Introduction
#### What
A simple tool based on `rsync` for uploading / synchronizing local project
(files) to remote server.
#### Who
For people who want to work on a project locally (on your laptop) and sync the files
to remote server. For example, developing locally and executing remotely.
#### Why
`rsync` is flexible and powerful, but flags and options are way too complex for
memorizing.
## Installation
```
$ pip install project-sync
```
This will install a command line tool `psync`, the usage of which is described below.
## Usage
1. Run `psync` under project root to generate initial config file (`.psync`).
```
$ cd ~/Code/demo_project
$ psync
```
It will generate the config interactively:
```
You are not in a project (no .psync found)!
Generate .psync to current directory (/Users/lazywei/Code/demo_project) [Y/n]? [Y]: Y
Config will be generated at /Users/lazywei/Code/demo_project:
---
Remote path [~/remote/path]: ~/remote/path
SSH host [ssh_host]: aws_playground
SSH username or enter '-' to skip [ssh_user]: -
Files or folders to ignore (separated by space) [ ]: .git .psync
ignores:
- .git
- .psync
remote: ~/remote/path
ssh:
host: aws_playground
username: null
---
Project root is now: /Users/lazywei/Code/demo_project
```
2. Run `psync` under any nested subfolders of the project root to sync the project.
```
$ psync
Running:
rsync -e ssh -ruaz --exclude .git --exclude .psync --rsync-path mkdir -p ~/remote/path && rsync /Users/lazywei/Code/demo_project aws_playground:~/remote/path
--- Sync Finished ---
$ ssh aws_playground "ls -a ~/remote/path/demo_project"
. .. README
```
3. Run `psync watch` to watch any modification under the project root and perform sync automatically.
### Usage Demo

### Config Options
The config (`.psync`) is a YAML file. You can edit it after initial generating.
- `ignores`: an array contains all the files for folders to exclude by `rsync`
- `ssh`:
- `host`: SSH Host
- `username`: SSH username, `null` to ignore this (for example, when you set this in `~/.ssh/config` already)
- `remote`: where to sync on remote server
## Contributions
This project is currently in WIP stage; any discussion, bug report and PR are more than welcome.
## License
psync is available under the MIT license. See the LICENSE file for more info.
=======================
## Introduction
#### What
A simple tool based on `rsync` for uploading / synchronizing local project
(files) to remote server.
#### Who
For people who want to work on a project locally (on your laptop) and sync the files
to remote server. For example, developing locally and executing remotely.
#### Why
`rsync` is flexible and powerful, but flags and options are way too complex for
memorizing.
## Installation
```
$ pip install project-sync
```
This will install a command line tool `psync`, the usage of which is described below.
## Usage
1. Run `psync` under project root to generate initial config file (`.psync`).
```
$ cd ~/Code/demo_project
$ psync
```
It will generate the config interactively:
```
You are not in a project (no .psync found)!
Generate .psync to current directory (/Users/lazywei/Code/demo_project) [Y/n]? [Y]: Y
Config will be generated at /Users/lazywei/Code/demo_project:
---
Remote path [~/remote/path]: ~/remote/path
SSH host [ssh_host]: aws_playground
SSH username or enter '-' to skip [ssh_user]: -
Files or folders to ignore (separated by space) [ ]: .git .psync
ignores:
- .git
- .psync
remote: ~/remote/path
ssh:
host: aws_playground
username: null
---
Project root is now: /Users/lazywei/Code/demo_project
```
2. Run `psync` under any nested subfolders of the project root to sync the project.
```
$ psync
Running:
rsync -e ssh -ruaz --exclude .git --exclude .psync --rsync-path mkdir -p ~/remote/path && rsync /Users/lazywei/Code/demo_project aws_playground:~/remote/path
--- Sync Finished ---
$ ssh aws_playground "ls -a ~/remote/path/demo_project"
. .. README
```
3. Run `psync watch` to watch any modification under the project root and perform sync automatically.
### Usage Demo

### Config Options
The config (`.psync`) is a YAML file. You can edit it after initial generating.
- `ignores`: an array contains all the files for folders to exclude by `rsync`
- `ssh`:
- `host`: SSH Host
- `username`: SSH username, `null` to ignore this (for example, when you set this in `~/.ssh/config` already)
- `remote`: where to sync on remote server
## Contributions
This project is currently in WIP stage; any discussion, bug report and PR are more than welcome.
## License
psync is available under the MIT license. See the LICENSE file for more info.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
project-sync-0.2.0.tar.gz
(4.6 kB
view details)
Built Distribution
File details
Details for the file project-sync-0.2.0.tar.gz
.
File metadata
- Download URL: project-sync-0.2.0.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b881ad688e7ceab2ec705944284c6d48d84eae62346881c23c3fc894e3ecd45d |
|
MD5 | 5a3ca629ad6e6cdb8c580f03ae517e31 |
|
BLAKE2b-256 | ff54652626518189530cb798bca368fcc1d4e3e822b7b10283e616c5f85ab318 |
File details
Details for the file project_sync-0.2.0-py2.py3-none-any.whl
.
File metadata
- Download URL: project_sync-0.2.0-py2.py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 008c761ae5c9944d75c95d368dcc3f6dfeb27e4e3411f7df5e724d9425ba7aaa |
|
MD5 | b595c779f03979b5cfc39b00aa5420d9 |
|
BLAKE2b-256 | ebdb0742ccecb91dc8caf09bd37a1acbb81b04d364f0fa19b34a6ab9d0a41bde |