Skip to main content

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.

  1. 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)
  2. Navigate into the root of the repository.
  3. 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 pack [--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 unpack --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

box-cmd-2.0.3.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

box_cmd-2.0.3-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

Details for the file box-cmd-2.0.3.tar.gz.

File metadata

  • Download URL: box-cmd-2.0.3.tar.gz
  • Upload date:
  • Size: 31.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for box-cmd-2.0.3.tar.gz
Algorithm Hash digest
SHA256 aecf5ee80c73f583f366bfddecb282636121e1d4078a1693974510d9c062c577
MD5 0d6740abf5d1dedfecd43e4f8a716554
BLAKE2b-256 d4e9a92c2ae29b9063ec221a0e4d17eae9000768ed919d6fe174e1702f226c28

See more details on using hashes here.

File details

Details for the file box_cmd-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: box_cmd-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 34.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for box_cmd-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 482875ade59a7bb2427a262db534ef681b23f8a42e7738f417585aa9159f873d
MD5 c85eb876e7c5991f22c488f59d14da04
BLAKE2b-256 e69921c0bcc0e6c4aa175f4c3b38ac35830850eccecfdb4fdef6ec6c0c6bcd9b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page