├── .github └── workflows │ └── python-app.yml ├── .gitignore ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── artifacts ├── completions │ ├── bash_yabsnap │ └── zsh_yabsnap ├── pacman │ └── 01-yabsnap-pacman-pre.hook ├── services │ ├── yabsnap.service │ └── yabsnap.timer └── yabsnap.manpage ├── pyproject.toml ├── scripts ├── install-to-dest.sh ├── install.sh ├── test_install-to-dest.sh └── uninstall.sh └── src ├── code ├── .gitignore ├── __init__.py ├── arg_parser.py ├── autocomplete │ ├── __init__.py │ ├── comp_types.py │ ├── completions.py │ ├── completions_test.py │ ├── shell_impl.py │ └── shell_impl_test.py ├── configs.py ├── configs_test.py ├── example_config.conf ├── global_flags.py ├── main.py ├── mechanisms │ ├── __init__.py │ ├── abstract_mechanism.py │ ├── bcachefs_mechanism.py │ ├── btrfs_mechanism.py │ ├── rollback_btrfs.py │ ├── rollback_btrfs_test.py │ ├── rsync_mechanism.py │ ├── rsync_mechanism_test.py │ ├── snap_mechanisms.py │ └── snap_type_enum.py ├── shell_completions.py ├── snapshot_logic │ ├── __init__.py │ ├── auto_cleanup_without_ttl.py │ ├── auto_cleanup_without_ttl_test.py │ ├── batch_deleter.py │ ├── batch_deleter_test.py │ ├── rollbacker.py │ ├── rollbacker_test.py │ ├── scheduled_snapshot_ttl.py │ ├── scheduled_snapshot_ttl_test.py │ ├── snap_holder.py │ ├── snap_holder_test.py │ ├── snap_metadata.py │ ├── snap_metadata_test.py │ ├── snap_operator.py │ └── snap_operator_test.py └── utils │ ├── __init__.py │ ├── btrfs_utils.py │ ├── btrfs_utils_test.py │ ├── colored_logs.py │ ├── dataclass_loader.py │ ├── dataclass_loader_test.py │ ├── human_interval.py │ ├── human_interval_test.py │ ├── mtab_parser.py │ ├── mtab_parser_test.py │ ├── os_utils.py │ └── os_utils_test.py ├── run_full_tests.sh ├── run_tests.sh └── yabsnap.sh /.github/workflows/python-app.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/.github/workflows/python-app.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/README.md -------------------------------------------------------------------------------- /artifacts/completions/bash_yabsnap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/artifacts/completions/bash_yabsnap -------------------------------------------------------------------------------- /artifacts/completions/zsh_yabsnap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/artifacts/completions/zsh_yabsnap -------------------------------------------------------------------------------- /artifacts/pacman/01-yabsnap-pacman-pre.hook: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/artifacts/pacman/01-yabsnap-pacman-pre.hook -------------------------------------------------------------------------------- /artifacts/services/yabsnap.service: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/artifacts/services/yabsnap.service -------------------------------------------------------------------------------- /artifacts/services/yabsnap.timer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/artifacts/services/yabsnap.timer -------------------------------------------------------------------------------- /artifacts/yabsnap.manpage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/artifacts/yabsnap.manpage -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/pyproject.toml -------------------------------------------------------------------------------- /scripts/install-to-dest.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/scripts/install-to-dest.sh -------------------------------------------------------------------------------- /scripts/install.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/scripts/install.sh -------------------------------------------------------------------------------- /scripts/test_install-to-dest.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/scripts/test_install-to-dest.sh -------------------------------------------------------------------------------- /scripts/uninstall.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/scripts/uninstall.sh -------------------------------------------------------------------------------- /src/code/.gitignore: -------------------------------------------------------------------------------- 1 | !_* 2 | __pycache__ 3 | -------------------------------------------------------------------------------- /src/code/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/__init__.py -------------------------------------------------------------------------------- /src/code/arg_parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/arg_parser.py -------------------------------------------------------------------------------- /src/code/autocomplete/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/code/autocomplete/comp_types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/autocomplete/comp_types.py -------------------------------------------------------------------------------- /src/code/autocomplete/completions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/autocomplete/completions.py -------------------------------------------------------------------------------- /src/code/autocomplete/completions_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/autocomplete/completions_test.py -------------------------------------------------------------------------------- /src/code/autocomplete/shell_impl.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/autocomplete/shell_impl.py -------------------------------------------------------------------------------- /src/code/autocomplete/shell_impl_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/autocomplete/shell_impl_test.py -------------------------------------------------------------------------------- /src/code/configs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/configs.py -------------------------------------------------------------------------------- /src/code/configs_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/configs_test.py -------------------------------------------------------------------------------- /src/code/example_config.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/example_config.conf -------------------------------------------------------------------------------- /src/code/global_flags.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/global_flags.py -------------------------------------------------------------------------------- /src/code/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/main.py -------------------------------------------------------------------------------- /src/code/mechanisms/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/mechanisms/__init__.py -------------------------------------------------------------------------------- /src/code/mechanisms/abstract_mechanism.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/mechanisms/abstract_mechanism.py -------------------------------------------------------------------------------- /src/code/mechanisms/bcachefs_mechanism.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/mechanisms/bcachefs_mechanism.py -------------------------------------------------------------------------------- /src/code/mechanisms/btrfs_mechanism.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/mechanisms/btrfs_mechanism.py -------------------------------------------------------------------------------- /src/code/mechanisms/rollback_btrfs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/mechanisms/rollback_btrfs.py -------------------------------------------------------------------------------- /src/code/mechanisms/rollback_btrfs_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/mechanisms/rollback_btrfs_test.py -------------------------------------------------------------------------------- /src/code/mechanisms/rsync_mechanism.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/mechanisms/rsync_mechanism.py -------------------------------------------------------------------------------- /src/code/mechanisms/rsync_mechanism_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/mechanisms/rsync_mechanism_test.py -------------------------------------------------------------------------------- /src/code/mechanisms/snap_mechanisms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/mechanisms/snap_mechanisms.py -------------------------------------------------------------------------------- /src/code/mechanisms/snap_type_enum.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/mechanisms/snap_type_enum.py -------------------------------------------------------------------------------- /src/code/shell_completions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/shell_completions.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/code/snapshot_logic/auto_cleanup_without_ttl.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/auto_cleanup_without_ttl.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/auto_cleanup_without_ttl_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/auto_cleanup_without_ttl_test.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/batch_deleter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/batch_deleter.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/batch_deleter_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/batch_deleter_test.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/rollbacker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/rollbacker.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/rollbacker_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/rollbacker_test.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/scheduled_snapshot_ttl.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/scheduled_snapshot_ttl.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/scheduled_snapshot_ttl_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/scheduled_snapshot_ttl_test.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/snap_holder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/snap_holder.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/snap_holder_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/snap_holder_test.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/snap_metadata.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/snap_metadata.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/snap_metadata_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/snap_metadata_test.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/snap_operator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/snap_operator.py -------------------------------------------------------------------------------- /src/code/snapshot_logic/snap_operator_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/snapshot_logic/snap_operator_test.py -------------------------------------------------------------------------------- /src/code/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/code/utils/btrfs_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/btrfs_utils.py -------------------------------------------------------------------------------- /src/code/utils/btrfs_utils_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/btrfs_utils_test.py -------------------------------------------------------------------------------- /src/code/utils/colored_logs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/colored_logs.py -------------------------------------------------------------------------------- /src/code/utils/dataclass_loader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/dataclass_loader.py -------------------------------------------------------------------------------- /src/code/utils/dataclass_loader_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/dataclass_loader_test.py -------------------------------------------------------------------------------- /src/code/utils/human_interval.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/human_interval.py -------------------------------------------------------------------------------- /src/code/utils/human_interval_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/human_interval_test.py -------------------------------------------------------------------------------- /src/code/utils/mtab_parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/mtab_parser.py -------------------------------------------------------------------------------- /src/code/utils/mtab_parser_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/mtab_parser_test.py -------------------------------------------------------------------------------- /src/code/utils/os_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/os_utils.py -------------------------------------------------------------------------------- /src/code/utils/os_utils_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/code/utils/os_utils_test.py -------------------------------------------------------------------------------- /src/run_full_tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/run_full_tests.sh -------------------------------------------------------------------------------- /src/run_tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/run_tests.sh -------------------------------------------------------------------------------- /src/yabsnap.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirak99/yabsnap/HEAD/src/yabsnap.sh --------------------------------------------------------------------------------