All Projects → lazywei → Psync

lazywei / Psync

Licence: mit
Synchronize project based on rsync; support watching changes and sync automatically

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Psync

Outlookgooglecalendarsync
Sync your Outlook and Google calendars
Stars: ✭ 1,113 (+1536.76%)
Mutual labels:  sync
Trymodule
➰ It's never been easier to try nodejs modules!
Stars: ✭ 1,115 (+1539.71%)
Mutual labels:  developer-tools
Artemis Dev Tool
An Apollo GraphQL Query Schema Testing Tool
Stars: ✭ 66 (-2.94%)
Mutual labels:  developer-tools
Xxv
The XXV visual hex viewer for the terminal.
Stars: ✭ 61 (-10.29%)
Mutual labels:  developer-tools
92five
Self hosted project management application
Stars: ✭ 1,114 (+1538.24%)
Mutual labels:  project-management
Whatthegem
Ruby gem information, stats and usage for your terminal
Stars: ✭ 63 (-7.35%)
Mutual labels:  developer-tools
Log Viewer
Web UI to viewing logs
Stars: ✭ 59 (-13.24%)
Mutual labels:  developer-tools
Toc
🚩 TOC, zero configuration table of content generator for Markdown files, create table of contents from any Markdown file with ease.
Stars: ✭ 66 (-2.94%)
Mutual labels:  developer-tools
Git Notify
🙉 📣 Communicate important updates to your team via git commit messages
Stars: ✭ 1,091 (+1504.41%)
Mutual labels:  developer-tools
Jumbune
Jumbune, an open source BigData APM & Data Quality Management Platform for Data Clouds. Enterprise feature offering is available at http://jumbune.com. More details of open source offering are at,
Stars: ✭ 64 (-5.88%)
Mutual labels:  developer-tools
Mailchimp Api 3.0 Php
A feature rich object-oriented PHP library for interacting with MailChimp's API v3 💌🐵
Stars: ✭ 61 (-10.29%)
Mutual labels:  sync
Logvac
Simple, lightweight, api-driven log aggregation service with realtime push capabilities and historical persistence.
Stars: ✭ 61 (-10.29%)
Mutual labels:  developer-tools
Deb Dev Machine
Quickly install common Developer tools, IDE's & Services on Debian 9
Stars: ✭ 63 (-7.35%)
Mutual labels:  developer-tools
Wago
Automate the actions you do after saving code.
Stars: ✭ 60 (-11.76%)
Mutual labels:  developer-tools
Flowa
🔥Service level control flow for Node.js
Stars: ✭ 66 (-2.94%)
Mutual labels:  sync
Blindfold
🔎 Gitignore file generator written in rust
Stars: ✭ 60 (-11.76%)
Mutual labels:  developer-tools
Tables To Go
convert your database tables to structs easily
Stars: ✭ 62 (-8.82%)
Mutual labels:  developer-tools
Brawlstats
(A)sync python wrapper for the Brawl Stars API
Stars: ✭ 68 (+0%)
Mutual labels:  sync
Prequel
Prequel for Laravel. Clear and concise database management.
Stars: ✭ 1,141 (+1577.94%)
Mutual labels:  developer-tools
Iclouddocumentsync
Integrate iCloud into iOS document projects with one-line code methods. Sync, upload, manage, and remove documents from iCloud quickly and easily. Helps to make iCloud "just work" for developers too.
Stars: ✭ 1,124 (+1552.94%)
Mutual labels:  sync

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

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].