PyCharmSync
A simple tool for uploading changed project files to a remote host, automatically.
Paid versions of PyCharm can be set up to upload project files
as you change them locally. PyCharmSync
aims to do just that
using the sshpass
and the scp
command on Unix based machines.
PyCharmSync
will watch a project directory, track the files in
the directory and then upload the changed versions automatically
based on settings set in an .env
file in your root project
directory.
Install
pip install PyCharmSync
.env
Example
Here are some settings for a project named project_name
on a
raspberry pi. The .env
file should be consumable by configparser.ConfigParser
[SSH]
HOST = 10.0.0.200
USER = pi
PASS = raspberry
PROJECT_ROOT = /home/pi/project_name
The settings laid out above would map to the following command:
sshpass -p "PASS" scp FILEPATH USER@HOST:PROJECT_ROOT
or
sshpass -p "raspberry" scp /home/user/project_name/some_file.py pi@10.0.0.200:/home/pi/project_name
Usage Example
Once you have your .env
file configured in your project's root
directory all you need to do is import ProjectSync
from PyCharmSync
and then run it's main
method:
from PyCharmSync import ProjectSync
ProjectSync.main()
If you need to use a custom config file:
from PyCharmSync import ProjectSync
from configparser import ConfigParser
path_to_custom_config_file = '.remote'
config = ConfigParser()
config.read(path_to_custom_config_file)
ProjectSync.config = config
ProjectSync.main()
If you are not running the main
method from your project's root
directory you need to pass a cwd
to the main
method.
from PyCharmSync import ProjectSync
ProjectSync.main('/home/user/project_name')