<a src='https://www.rplumber.io/'><img src='logo.png' align="right" height="138.5" style="margin:10px;" /></a>
![software-version](https://custom-icon-badges.demolab.com/badge/Version-v1.0.2-gray.svg?labelColor=informational&logo=stack)
![software-state](https://custom-icon-badges.demolab.com/badge/Status%20-Under%20Development-gray.svg?labelColor=informational&logo=gear)
[![PyPI version](https://badge.fury.io/py/sync2folders.svg)](https://badge.fury.io/py/sync2folders)
![software-owner](https://custom-icon-badges.demolab.com/badge/Owner%20-Ivan%20Santos-gray.svg?labelColor=informational&logo=person)
<a href="mailto:ivan.rafa.16@gmail.com" rel="nofollow">![owner-contact: ivan.rafa.16@gmail.com](https://custom-icon-badges.demolab.com/badge/Contact%20-ivan.rafa.16@gmail.com-gray.svg?labelColor=informational&logo=mail)</a>
<br>
<h1 style="text-align: left;">sync<span style="color: #00b336">$\color[rgb]{0,0.67,0.2} 2$</span>folders</h1>
<p style="text-align: justify;">This is a simple program that synchronizes two folders: source and replica. The program maintains a full, identical copy of source folder at replica folder. The program is written in Python.</p>
<p style="text-align: justify;">The program is designed to be run from the command line. It takes four arguments: source folder path, replica folder path, synchronization interval and logs path. The program synchronizes the folders every time the interval expires. The program logs file creation/copying/removal operations to a file and to the console output.</p>
<br>
## **Features**
- [x] Synchronization is one-way: after the synchronization content of the replica folder is modified to exactly match content of the source folder;
- [x] Synchronization is performed periodically;
- [x] File creation/copying/removal operations are logged to a file and to the console output;
- [x] Folder paths, synchronization interval and log file path are provided using the command line arguments;
<br>
## **Quick Start**
<details>
<summary><h2><strong> Get The Script From Git Hub Repo</strong></h2></summary>
Inside a folder of your choice, clone the repository from command line:
```bash
git clone https://github.com/ivanSantos16/sync2folders
```
You can run the program from the command line and ask for help with the script variables:
```bash
python sync2folders -h
usage: synchronisation.py [-h] -s SOURCE -r REPLICA -p PERIOD -l LOGS
Synchronizes two folders: source and replica
options:
-h, --help show this help message and exit
-s SOURCE, --source SOURCE
Source folder path
-r REPLICA, --replica REPLICA
Replica folder path
-p PERIOD, --period PERIOD
Period of time in seconds between each synchronization
-l LOGS, --logs LOGS Logs file path
```
<br>
### Arguments Description
- `source` : Source folder path (required) [string]
- `replica` : Replica folder path (required) [string]
- `period` : Period of time in seconds between each synchronization (required) [int]
- `logs` : Logs file path (required) [string]
<br>
### Different examples of running the program.
First example:
```bash
python sync2folders -s <source_folder_path> -r <replica_folder_path> -p <sync_interval> -l <log_file_path>
```
```bash
python sync2folders -s source -r replica -p 10 -l logs/logs.txt
```
<br>
Second example:
```bash
python sync2folders --source <source_folder_path> --replica <replica_folder_path> --period <sync_interval> --logs <log_file_path>
```
```bash
python sync2folders --source source --replica replica --period 10 --logs logs/logs.txt
```
</details>
<details open>
<summary><h2><strong> Get The Script From Pypi</strong></h2></summary>
From command line, install the package with pip:
```bash
python -m pip install sync2folders
```
From anywhere, you can run the program from the command line and ask for help with the script variables:
```bash
python -m sync2folders -h
usage: synchronisation.py [-h] -s SOURCE -r REPLICA -p PERIOD -l LOGS
Synchronizes two folders: source and replica
options:
-h, --help show this help message and exit
-s SOURCE, --source SOURCE
Source folder path
-r REPLICA, --replica REPLICA
Replica folder path
-p PERIOD, --period PERIOD
Period of time in seconds between each synchronization
-l LOGS, --logs LOGS Logs file path
```
<br>
### Arguments Description
- `source` : Source folder path (required) [string]
- `replica` : Replica folder path (required) [string]
- `period` : Period of time in seconds between each synchronization (required) [int]
- `logs` : Logs file path (required) [string]
<br>
### Different examples of running the program.
First example:
```bash
python -m sync2folders -s <source_folder_path> -r <replica_folder_path> -p <sync_interval> -l <log_file_path>
```
```bash
python -m sync2folders -s source -r replica -p 10 -l logs/logs.txt
```
<br>
Second example:
```bash
python -m sync2folders --source <source_folder_path> --replica <replica_folder_path> --period <sync_interval> --logs <log_file_path>
```
```bash
python -m sync2folders --source source --replica replica --period 10 --logs logs/logs.txt
```
</details open>
Raw data
{
"_id": null,
"home_page": "https://github.com/ivanSantos16/sync2folders",
"name": "sync2folders",
"maintainer": "ivanSantos16",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "ivan.rafa.16@gmail.com",
"keywords": "sync,folders,synchronize",
"author": "ivanSantos16",
"author_email": "ivan.rafa.16@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/86/46/080bdce4d496c2f413dd510ee22ecb960896b31b63ed133e3a1fff6f86b9/sync2folders-1.0.2.tar.gz",
"platform": null,
"description": "<a src='https://www.rplumber.io/'><img src='logo.png' align=\"right\" height=\"138.5\" style=\"margin:10px;\" /></a>\n\n![software-version](https://custom-icon-badges.demolab.com/badge/Version-v1.0.2-gray.svg?labelColor=informational&logo=stack) \n![software-state](https://custom-icon-badges.demolab.com/badge/Status%20-Under%20Development-gray.svg?labelColor=informational&logo=gear) \n[![PyPI version](https://badge.fury.io/py/sync2folders.svg)](https://badge.fury.io/py/sync2folders)\n\n![software-owner](https://custom-icon-badges.demolab.com/badge/Owner%20-Ivan%20Santos-gray.svg?labelColor=informational&logo=person)\n<a href=\"mailto:ivan.rafa.16@gmail.com\" rel=\"nofollow\">![owner-contact: ivan.rafa.16@gmail.com](https://custom-icon-badges.demolab.com/badge/Contact%20-ivan.rafa.16@gmail.com-gray.svg?labelColor=informational&logo=mail)</a>\n<br>\n<h1 style=\"text-align: left;\">sync<span style=\"color: #00b336\">$\\color[rgb]{0,0.67,0.2} 2$</span>folders</h1>\n\n<p style=\"text-align: justify;\">This is a simple program that synchronizes two folders: source and replica. The program maintains a full, identical copy of source folder at replica folder. The program is written in Python.</p>\n\n<p style=\"text-align: justify;\">The program is designed to be run from the command line. It takes four arguments: source folder path, replica folder path, synchronization interval and logs path. The program synchronizes the folders every time the interval expires. The program logs file creation/copying/removal operations to a file and to the console output.</p>\n\n<br>\n\n## **Features**\n\n- [x] Synchronization is one-way: after the synchronization content of the replica folder is modified to exactly match content of the source folder;\n- [x] Synchronization is performed periodically;\n- [x] File creation/copying/removal operations are logged to a file and to the console output;\n- [x] Folder paths, synchronization interval and log file path are provided using the command line arguments;\n\n<br>\n\n## **Quick Start**\n<details>\n <summary><h2><strong> Get The Script From Git Hub Repo</strong></h2></summary>\n\nInside a folder of your choice, clone the repository from command line:\n\n```bash\ngit clone https://github.com/ivanSantos16/sync2folders\n```\n\nYou can run the program from the command line and ask for help with the script variables:\n\n```bash\npython sync2folders -h \n\nusage: synchronisation.py [-h] -s SOURCE -r REPLICA -p PERIOD -l LOGS\n\nSynchronizes two folders: source and replica\n\noptions:\n -h, --help show this help message and exit\n -s SOURCE, --source SOURCE\n Source folder path\n -r REPLICA, --replica REPLICA\n Replica folder path\n -p PERIOD, --period PERIOD\n Period of time in seconds between each synchronization\n -l LOGS, --logs LOGS Logs file path\n```\n\n<br>\n\n### Arguments Description\n- `source` : Source folder path (required) [string]\n- `replica` : Replica folder path (required) [string]\n- `period` : Period of time in seconds between each synchronization (required) [int]\n- `logs` : Logs file path (required) [string]\n\n<br>\n\n### Different examples of running the program.\n\nFirst example:\n\n```bash\npython sync2folders -s <source_folder_path> -r <replica_folder_path> -p <sync_interval> -l <log_file_path>\n```\n\n```bash\npython sync2folders -s source -r replica -p 10 -l logs/logs.txt\n```\n<br>\n\nSecond example:\n\n```bash\npython sync2folders --source <source_folder_path> --replica <replica_folder_path> --period <sync_interval> --logs <log_file_path>\n```\n\n```bash\npython sync2folders --source source --replica replica --period 10 --logs logs/logs.txt\n```\n</details>\n \n<details open>\n<summary><h2><strong> Get The Script From Pypi</strong></h2></summary>\n\n\nFrom command line, install the package with pip:\n\n```bash\npython -m pip install sync2folders\n```\n\nFrom anywhere, you can run the program from the command line and ask for help with the script variables:\n\n```bash\npython -m sync2folders -h \n\nusage: synchronisation.py [-h] -s SOURCE -r REPLICA -p PERIOD -l LOGS\n\nSynchronizes two folders: source and replica\n\noptions:\n -h, --help show this help message and exit\n -s SOURCE, --source SOURCE\n Source folder path\n -r REPLICA, --replica REPLICA\n Replica folder path\n -p PERIOD, --period PERIOD\n Period of time in seconds between each synchronization\n -l LOGS, --logs LOGS Logs file path\n```\n\n<br>\n\n### Arguments Description\n- `source` : Source folder path (required) [string]\n- `replica` : Replica folder path (required) [string]\n- `period` : Period of time in seconds between each synchronization (required) [int]\n- `logs` : Logs file path (required) [string]\n\n<br>\n\n### Different examples of running the program.\n\nFirst example:\n\n```bash\npython -m sync2folders -s <source_folder_path> -r <replica_folder_path> -p <sync_interval> -l <log_file_path>\n```\n\n```bash\npython -m sync2folders -s source -r replica -p 10 -l logs/logs.txt\n```\n<br>\n\nSecond example:\n\n```bash\npython -m sync2folders --source <source_folder_path> --replica <replica_folder_path> --period <sync_interval> --logs <log_file_path>\n```\n\n```bash\npython -m sync2folders --source source --replica replica --period 10 --logs logs/logs.txt\n```\n</details open>\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Synchronizes source and replica folders",
"version": "1.0.2",
"split_keywords": [
"sync",
"folders",
"synchronize"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "30ee80393e3411579b1e2fb8e9fcd62cda85c5a29f698e7a2297ff818fbad08c",
"md5": "977be4972ee2f3d584a9146b4721ae1d",
"sha256": "a085af87fd6f549e9682ff7042637e87b7aad076bd83ac7c4ad0c6571294742f"
},
"downloads": -1,
"filename": "sync2folders-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "977be4972ee2f3d584a9146b4721ae1d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 9120,
"upload_time": "2023-02-11T16:30:15",
"upload_time_iso_8601": "2023-02-11T16:30:15.097820Z",
"url": "https://files.pythonhosted.org/packages/30/ee/80393e3411579b1e2fb8e9fcd62cda85c5a29f698e7a2297ff818fbad08c/sync2folders-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8646080bdce4d496c2f413dd510ee22ecb960896b31b63ed133e3a1fff6f86b9",
"md5": "982ffcde6b6acbb4d213b0d21233ea7c",
"sha256": "cf5a8d91b776433b17c151fb86b43c44bbbbc6f8e3b72c4530de87dbbecc90db"
},
"downloads": -1,
"filename": "sync2folders-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "982ffcde6b6acbb4d213b0d21233ea7c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 6776,
"upload_time": "2023-02-11T16:30:17",
"upload_time_iso_8601": "2023-02-11T16:30:17.046599Z",
"url": "https://files.pythonhosted.org/packages/86/46/080bdce4d496c2f413dd510ee22ecb960896b31b63ed133e3a1fff6f86b9/sync2folders-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-02-11 16:30:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "ivanSantos16",
"github_project": "sync2folders",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "sync2folders"
}