mirror of
https://github.com/borgbase/vorta
synced 2024-12-21 23:33:13 +00:00
No description
634f984e78
* Add dependency for pyobjc-CoreWLAN on darwin * Rename existing implementation with Android The current implementation was tested with Android, but does not work with iOS. Move the existing implementation and include android in the name to make room for adding a new iOS metered connection detection strategy. * get_current_wifi works with objc Switch from using command line tools to using the Objective-C Cocoa API to get the Wi-Fi status information. Cocoa has an API to specifically check whether a Wi-Fi connection is using a Personal Hotspot on iOS. I'm using a private method to get the Wi-Fi interface object in Cocoa. The reason for this is that cleaning up mocks on PyObjC/ObjC objects is much harder than mocking out methods on objects in our control. Using test doubles also let's me check for different states the Wi-Fi network could be in. * get_known_wifis works on darwin Use the networksetup command on macOS to get the list of the user's Wi-Fi networks. networksetup -listpreferredwirelessnetworks bsd_device It looks like this command and option has existed on macOS since at least 2013. Also add some type annotations around the PyObjC return values to help the reader know what they're dealing with at each step. * Add test for get_current_wifi when wifi is off The user might have Wi-Fi turned off. Account for that use case. * Add iOS Personal Hotspot support to is_network_metered The DarwinNetworkManager can now determine if the user is connected to a Personal Hotspot Wi-Fi network from iOS. Account for whether the user has Wi-Fi turned on and off. * Refactor to avoid deprecated API in Cocoa According to Apple's developer documentation, creating CWInterface objects directly are discouraged. Instead, they prefer to use CWInterface objects created by CWWiFiClient. This also happens to be more compliant with Apple's application sandbox. Creating CWInterface objects directly accesses raw BSD sockets which is not allowed in the sandbox. More details here: https://developer.apple.com/documentation/corewlan/cwinterface * Add test case for blank Wi-Fi network name I have one of these in my list of networks in Vorta. And this also covers a missing branch in get_known_wifis. * Move private method below public methods This is to provide a little more clarity. Especially since this class is subclassing another one. * Account for when there is no wifi interface When a Mac does not have a Wi-Fi interface, CWWiFiClient.interface() can return None. Update the type annotation to mark it as Optional, and account for the null condition in the other methods. * Fix type annotation error The CI tests failed on python 3.8. I used the wrong type annotation to describe a list of SystemWifiInfo's. The tests now pass for me when I run 'make test-unit' using a python 3.8 interpreter. * Fix linter issue with imports |
||
---|---|---|
.github | ||
.tx | ||
bin | ||
package | ||
requirements.d | ||
src/vorta | ||
tests | ||
.editorconfig | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.pre-commit-config.yaml | ||
codecov.yml | ||
CONTRIBUTORS.md | ||
LICENSE.txt | ||
Makefile | ||
MANIFEST.in | ||
noxfile.py | ||
pyproject.toml | ||
README.md | ||
setup.cfg | ||
setup.py |
Vorta Backup Client
Vorta is a backup client for macOS and Linux desktops. It integrates the mighty BorgBackup with your desktop environment to protect your data from disk failure, ransomware and theft.
https://github.com/m3nu/vorta/assets/3916435/a622a148-5373-4ae0-87bc-4ca1d6f6202e
Why is this great? 🤩
- Encrypted, deduplicated and compressed backups using Borg as backend.
- No vendor lock-in – back up to local drives, your own server or BorgBase, a hosting service for Borg backups.
- Open source – free to use, modify, improve and audit.
- Flexible profiles to group source folders, backup destinations and schedules.
- One place to view all point-in-time archives and restore individual files.
Learn more on Vorta's website.
Installation
Vorta should work on all platforms that support Qt and Borg. This includes macOS, Ubuntu, Debian, Fedora, Arch Linux and many others. Windows is currently not supported by Borg, but this may change in the future.
See our website for download links and install instructions.
Connect and Contribute
- To discuss everything around using, improving, packaging and translating Vorta, join the discussion on Github.
- Report bugs by opening a new Github issue.
- Want to contribute to Vorta? Great! See our contributor guide on how to help out with coding, translation and packaging.
- We currently have students from the Google Summer Of Code 2023 Program contributing to this project.
License and Credits
- See CONTRIBUTORS.md to see who programmed and translated Vorta.
- Licensed under GPLv3. © 2018-2023 Manuel Riel and Vorta contributors
- Based on PyQt and Qt.
- Icons by Fork Awesome (licensed under SIL Open Font License, Version 1.1) and Material Design icons by Google (licensed under Apache License 2.0). See the
src/vorta/assets/icons
folder for a copy of applicable licenses.