A command-line tool to easily create backups of selected folders or files.
Project description
BOX
Box is a command line tool that enables the easy creation of rolling backups using user-defined presets.
Installation
Pre-Installation
Ensure you have the following tools configured and working on your machine.
- Python (3.7 or greater)
- Git
Follow these steps to install this utility.
- Clone the repository using git:
git clone https://github.com/InValidFire/backup_cmd.git
(https)git clone git@github.com:InValidFire/backup_cmd.git
(ssh)
- Navigate into the root of the repository.
- Use pip to install the package locally.
python -m pip install .
Note: Depending on your system's configuration, the exact commands to run may vary.
Post-Installation and Configuration
BOX loads a file in your HOME directory called .box_config.json
, it should have the following structure:
{
"format": 1,
"presets": {
"<preset_name>": {
"targets": [
"C:\\Target\\Path\\One",
"C:\\Target\\Path\\Two"
],
"destinations": [
{
"path": "E:\\Destination\\Path",
"file_format": "zip",
"name_separator": "-",
"date_format": "%d_%m_%y__%H%M%S",
"max_backup_count": 10
}
]
}
}
}
If you'd like to see the JSON Schema used to validate this file, see here: presets.json JSON Schema
Usage
box list
- list all presets found in the config file.
box backup [--force] [--keep] <preset>
- create a backup using the preset
. if the force
flag is set, force the backup creation even if it was already saved. if the keep
flag is set, keep backups beyond the max_backup_count.
box restore --source=<preset|backups_folder> [--destination <destination_path>]
- select a backup to restore from the preset
or backups_folder
path. The backups_folder
path should contain completed backups from the utility. If the destination
is given, the original backup's target will not be used and the backup will instead be restored to the custom destination.
Development and Contribution
To run the program in a development environment, first install the program using pip.
pip install -e <repo-directory>
Then you can run the command under the box
command name. :)
This program utilizes pytest
for testing, with pytest-cov
, ensure you have them both installed:
pip install pytest pytest-cov
To run all tests in the tests directory, run the following command in the repo root directory.
pytest --cov=box_cmd ./tests
If you'd like the report to be generated into an HTML document (for detailed information), run this command instead:
pytest --cov=box_cmd ./tests --cov-report=html
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file box-cmd-2.0.0.tar.gz
.
File metadata
- Download URL: box-cmd-2.0.0.tar.gz
- Upload date:
- Size: 30.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7275e8a27a0bb31a0e1ce2b571e6c0a64a0bc3f68b44aed6bd6c97d6bca4c714 |
|
MD5 | 363f48bff593011f94de2c8e8f5187c3 |
|
BLAKE2b-256 | 6434090eed72fe74c384053c22cb575cd8ea6341867fbfce445ffa778afc7b48 |
File details
Details for the file box_cmd-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: box_cmd-2.0.0-py3-none-any.whl
- Upload date:
- Size: 34.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2807b2c00584b40f4e2a970130cf1fdb02e2c3c3806d25df5503729f99e647a |
|
MD5 | be299a0aacecadcb69db620067e33bac |
|
BLAKE2b-256 | ac76e0467e8de746e5e9acc9bb88fb5b0f97c3d613557024734c70ff9ed0e1bd |