{ "info": { "author": "Chih-Wei Chang", "author_email": "bert.cwchang@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "Project Sync\n=======================\n\n## Introduction\n\n#### What\n\nA simple tool based on `rsync` for uploading / synchronizing local project\n(files) to remote server.\n\n#### Who\nFor people who want to work on a project locally (on your laptop) and sync the files\nto remote server. For example, developing locally and executing remotely.\n\n#### Why\n`rsync` is flexible and powerful, but flags and options are way too complex for\nmemorizing.\n\n## Installation\n\n```\n$ pip install project-sync\n```\n\nThis will install a command line tool `psync`, the usage of which is described below.\n\n## Usage\n\n\n1. Run `psync` under project root to generate initial config file (`.psync`).\n ```\n $ cd ~/Code/demo_project\n $ psync\n ```\n It will generate the config interactively:\n\n ```\n You are not in a project (no .psync found)!\n Generate .psync to current directory (/Users/lazywei/Code/demo_project) [Y/n]? [Y]: Y\n Config will be generated at /Users/lazywei/Code/demo_project:\n ---\n Remote path [~/remote/path]: ~/remote/path\n SSH host [ssh_host]: aws_playground\n SSH username or enter '-' to skip [ssh_user]: -\n Files or folders to ignore (separated by space) [ ]: .git .psync\n ignores:\n - .git\n - .psync\n remote: ~/remote/path\n ssh:\n host: aws_playground\n username: null\n\n ---\n Project root is now: /Users/lazywei/Code/demo_project\n ```\n\n2. Run `psync` under any nested subfolders of the project root to sync the project.\n ```\n $ psync\n Running:\n rsync -e ssh -ruaz --exclude .git --exclude .psync --rsync-path mkdir -p ~/remote/path && rsync /Users/lazywei/Code/demo_project aws_playground:~/remote/path\n --- Sync Finished ---\n\n $ ssh aws_playground \"ls -a ~/remote/path/demo_project\"\n . .. README\n ```\n\n3. Run `psync watch` to watch any modification under the project root and perform sync automatically.\n\n### Usage Demo\n\n![Usage Demo](demo-usage.gif)\n\n### Config Options\n\nThe config (`.psync`) is a YAML file. You can edit it after initial generating.\n\n- `ignores`: an array contains all the files for folders to exclude by `rsync`\n- `ssh`:\n - `host`: SSH Host\n - `username`: SSH username, `null` to ignore this (for example, when you set this in `~/.ssh/config` already)\n- `remote`: where to sync on remote server\n\n## Contributions\n\nThis project is currently in WIP stage; any discussion, bug report and PR are more than welcome.\n\n## License\n\npsync is available under the MIT license. See the LICENSE file for more info.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lazywei/psync", "keywords": "project sync rsync auto watch", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "project-sync", "package_url": "https://pypi.org/project/project-sync/", "platform": "", "project_url": "https://pypi.org/project/project-sync/", "project_urls": { "Homepage": "https://github.com/lazywei/psync" }, "release_url": "https://pypi.org/project/project-sync/0.2.0/", "requires_dist": [ "Click (>=6.0)", "PyYAML (>=3.12)", "watchdog (>=0.8.3)" ], "requires_python": "", "summary": "A simple tool for synchronizing local project (files) to remote server.", "version": "0.2.0" }, "last_serial": 2571147, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "dc5072b56d94dab3f84d82b57308437c", "sha256": "9b8b6ed723a5f25f0fdf0bfc56bb11860d9be54cb34d9f4c42ba2b4ce744b571" }, "downloads": -1, "filename": "project_sync-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dc5072b56d94dab3f84d82b57308437c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7424, "upload_time": "2017-01-06T10:26:10", "url": "https://files.pythonhosted.org/packages/4c/97/102781d92fa4b992a75e9d5cd43662a13842b1dcf070ec1fdb5c3a47690c/project_sync-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f442f467bc04576b810168bdf3e552ea", "sha256": "8c79b6f5cc9c78d58481f4120a3e4697238e99c194a3e729a4ec800eb0461a54" }, "downloads": -1, "filename": "project-sync-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f442f467bc04576b810168bdf3e552ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4492, "upload_time": "2017-01-06T10:26:11", "url": "https://files.pythonhosted.org/packages/40/70/2d518473cc1334e00590cf06e42f5797964fbd15015dfd1324821148b745/project-sync-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "5a70e8f08efa7a607ce5d58615d3919b", "sha256": "a6c7926e69c0e25db2927ad1e7d2e0d14314f26cf70324012bebba40e977f589" }, "downloads": -1, "filename": "project_sync-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5a70e8f08efa7a607ce5d58615d3919b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7502, "upload_time": "2017-01-06T12:34:04", "url": "https://files.pythonhosted.org/packages/3c/db/328b69df0a5dcca63023dc59afeab9ad2e87f7a2c4fb1546f47f498e1961/project_sync-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "58fdce958ce0c0144302afd24ad6dd1f", "sha256": "99147825f646538e566fc4c47d83838175b72d8b5b0f7438c4de88c69c4d99e8" }, "downloads": -1, "filename": "project-sync-0.1.2.tar.gz", "has_sig": false, "md5_digest": "58fdce958ce0c0144302afd24ad6dd1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4538, "upload_time": "2017-01-06T12:34:07", "url": "https://files.pythonhosted.org/packages/ec/f8/fac901e2a6a7dd18fedb05804f8f402eddb63f2d8dc17912091d48aaa3dd/project-sync-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b595c779f03979b5cfc39b00aa5420d9", "sha256": "008c761ae5c9944d75c95d368dcc3f6dfeb27e4e3411f7df5e724d9425ba7aaa" }, "downloads": -1, "filename": "project_sync-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b595c779f03979b5cfc39b00aa5420d9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7560, "upload_time": "2017-01-13T02:14:33", "url": "https://files.pythonhosted.org/packages/eb/db/0742ccecb91dc8caf09bd37a1acbb81b04d364f0fa19b34a6ab9d0a41bde/project_sync-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a3ca629ad6e6cdb8c580f03ae517e31", "sha256": "b881ad688e7ceab2ec705944284c6d48d84eae62346881c23c3fc894e3ecd45d" }, "downloads": -1, "filename": "project-sync-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5a3ca629ad6e6cdb8c580f03ae517e31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4601, "upload_time": "2017-01-13T02:14:35", "url": "https://files.pythonhosted.org/packages/ff/54/652626518189530cb798bca368fcc1d4e3e822b7b10283e616c5f85ab318/project-sync-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b595c779f03979b5cfc39b00aa5420d9", "sha256": "008c761ae5c9944d75c95d368dcc3f6dfeb27e4e3411f7df5e724d9425ba7aaa" }, "downloads": -1, "filename": "project_sync-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b595c779f03979b5cfc39b00aa5420d9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7560, "upload_time": "2017-01-13T02:14:33", "url": "https://files.pythonhosted.org/packages/eb/db/0742ccecb91dc8caf09bd37a1acbb81b04d364f0fa19b34a6ab9d0a41bde/project_sync-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a3ca629ad6e6cdb8c580f03ae517e31", "sha256": "b881ad688e7ceab2ec705944284c6d48d84eae62346881c23c3fc894e3ecd45d" }, "downloads": -1, "filename": "project-sync-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5a3ca629ad6e6cdb8c580f03ae517e31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4601, "upload_time": "2017-01-13T02:14:35", "url": "https://files.pythonhosted.org/packages/ff/54/652626518189530cb798bca368fcc1d4e3e822b7b10283e616c5f85ab318/project-sync-0.2.0.tar.gz" } ] }