Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
19b1b43
linting and formatting
needs-coffee Jun 19, 2022
3d59e0a
formatting
needs-coffee Jun 19, 2022
052ef75
CI/CD
needs-coffee Jun 19, 2022
d74f5ba
fix merge conficts
needs-coffee Jun 19, 2022
39d742d
test fix
needs-coffee Jun 19, 2022
03d34a6
Add check for Windows system
needs-coffee Jun 21, 2022
b8ddaa0
Merge pull request #5 from needs-coffee/dev-windows-check
needs-coffee Jun 21, 2022
061b4ea
add headless run option and all CLI flag
needs-coffee Jun 21, 2022
50ecec3
debug messages
needs-coffee Jun 21, 2022
b7f047a
linting changes
needs-coffee Jun 22, 2022
a52899d
Refactor backup functions, remove dedicated plex function
needs-coffee Jun 22, 2022
7f0397a
update zip7archiver tests
needs-coffee Jun 22, 2022
4126d00
config validation fixes for new keys
needs-coffee Jun 22, 2022
9959480
testing fix
needs-coffee Jun 22, 2022
320115c
change autoconfirm flag
needs-coffee Jun 22, 2022
86fa492
Refactor backup_run and add new plex keys
needs-coffee Jun 22, 2022
6cf32e5
Merge branch 'dev-backup-function' into dev
needs-coffee Jun 22, 2022
c413d2e
bugfix
needs-coffee Jun 22, 2022
c1e9b0d
import error
needs-coffee Jun 22, 2022
1e9459c
formatting
needs-coffee Jun 23, 2022
fae0af2
Upgrade 7z from version 19 to version 22
needs-coffee Jun 23, 2022
2270414
bugfix - dont specify md or m0 if mx0 as it causes cpu to hang
needs-coffee Jun 24, 2022
b28575d
Add warning of password length to interactive config builder
needs-coffee Jun 24, 2022
7995dd6
Version bump and release notes
needs-coffee Jun 25, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test-package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
push:
branches: [ main, dev ]
pull_request:
branches: [ main ]
branches: [ main, dev ]

jobs:
test:
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ celerybeat.pid

# Environments
.env
.venv
.venv*
env/
venv/
ENV/
Expand Down
27 changes: 26 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,31 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## 0.2.0-beta - 25-06-2022
### Added
- Autoconfirm CLI flag (-y/--autoconfirm)
- Add option for all targets at cli (-a/--all)
- detect if platform is not windows and quit. Only functions on windows.
- option to Tar before 7z for all targets
- Warning added for short password length with interactive config
- Keys missing in config file are filled with default values
### Changed
- upgrade 7z from version 19 to version 22 (~20% speed increase)
- Plex dedicated functions removed, backed up as a standard folder
- check plex database size correctly and decide on splitting - don't always force splitting.
- Refactoring of backup functions.
- Removed split-force config option
### Fixed
- Fix performance bug if compression level = 0 (store) (remove md + m0 cli flags)


## 0.1.7-beta
### Fixed
- Fix for virtualbox config
### Added
- GH CI/CD


## 0.1.0-beta - 03-05-2022
### Added
-Initial Release
- Initial Release
19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

A python package to back up user files on Windows to 7z archives. Useful for offsite or cloud backups and backups can be optionally encrypted with AES256. Archives can be Optionally split archives into smaller archives for easier management. As well as user files can backup Plex Media Server, Hyper-V Virtual Machines and VirtualBox Virtual Machines.

- embeds 7za to perform compression
- embeds 7z to perform compression
- saves lists of installed programs and drivers
- optional AES256 encryption
- Archives produced are full backups - no incremental backups at present
- Archives saved in the format - host_user_yyyy-mm-dd_folder.7z
Expand Down Expand Up @@ -33,6 +34,22 @@ or ```winbackup --create-configfile```. This config file must be modified before

To generate a configuration file interactively run ```winbackup -i``` or ```winbackup --interactive-config```. This file can be run without modification for later use.

Full CLI options
----------------

Available CLI options.

Flag | Option | Desc |
-----|-----------------------|-------------------------------------------------------------------|
`-a` | `--all` | Run backup with all possible backup targets selected |
`-c` | `--configfile` | Run backup from a supplied yaml config file |
`-C` | `--create-configfile` | Create a default configuration file template. Will need modified before being run.
`-h` | `--help` | Displays help information
`-i` | `--interactive-config`| Generate a configuration file interactively, can be run directly after generation
`-q` | `--quiet` | Minimal terminal output |
`-v` | `--verbose` | Sets logging to debug. Only affects log file not stdout. |
`-V` | `--version` | Print version info. |
`-y` | `--autoconfirm` | Autoconfirm prompts |
Tests
-----
To run unitests
Expand Down
7 changes: 6 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,9 @@ requires = [
"setuptools>=42",
"wheel"
]
build-backend = "setuptools.build_meta"
build-backend = "setuptools.build_meta"

[tool.black]
line-length = 95
target-version = ['py37']
include = '\.pyi?$'
8 changes: 8 additions & 0 deletions requirements.dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
colorama>=0.4.4
Send2Trash>=1.8.0
tqdm>=4.63.0
humanize>=4.0.0
PyYAML>=6.0
black>=22
flake8>=4.0
build>=0.8
5 changes: 5 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,8 @@ winbackup = scripts/*, bin/7z/*
console_scripts =
winbackup = winbackup.__main__:cli

[flake8]
extend-ignore = E203, E266, W503, E501
max-line-length = 95
max-complexity = 25
select = B,C,E,F,W,T4,B9,B950
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

import setuptools

if __name__ == '__main__':
if __name__ == "__main__":
setuptools.setup() # see setup.cfg
Loading