Easily back up lightweight documentation of installed packages, dotfiles, and more.
Project description
shallow-backup
shallow-backup
lets you easily create lightweight backups of installed packages, applications, fonts and dotfiles.
Contents
Featured On
shallow-backup
is featured on these lists!
What can I back up?
-
All
dotfiles
anddotfolders
.- macOS System Preferences
- Sublime Text Settings
- Atom Settings
.bashrc
.- etc.
-
Package Manager and Application
installs
.apm
brew
brew cask
gem
pip
npm
macports
- Sublime Text 2 and 3 packages
- macOS
~/Applications/
directory
-
User installed
fonts
.
Installation
-
Install with
pip
$ pip install shallow-backup
$ sudo shallow-backup
-
Download the
shallow-backup
binary from Releases tab.
Usage
Usage: shallow_backup.py [OPTIONS]
Easily back up installed packages, dotfiles, and more.
Options:
-complete Back up everything.
-dotfiles Back up dotfiles.
-fonts Back up installed fonts.
-packages Back up package libraries and installed applications.
-old_path Skip setting new back up directory path.
--new_path TEXT Input a new back up directory path.
-reinstall Reinstall packages from package lists.
-delete_config Remove config file.
-v Display version and author information and exit.
-help, -h Show this message and exit.
NOTE: shallow-backup
works best when it's populating an empty directory.
Example Commands
$ shallow-backup # Launch interactive CLI backup process
$ shallow-backup -old_path -complete # Make complete backup using same path as in config file
$ shallow-backup -new_path new_backup_dir -fonts # Back up fonts using path: `/new_backup_dir/`
Use Cases
- Reduce your backup size by compressing all package manager libraries to
.txt
files. - Easily back up your dotfiles, Sublime Text settings and Atom config.
- Back up all user installed
.ttf
and.otf
fonts fromFontbook
.
Output Structure
backup_dir/
├── dotfiles
│ ├── .bashrc
│ ├── .pypirc
│ ├── ...
│ ├── .ssh/
│ │ └── known_hosts
│ ├── .vim/
│ └── .zshrc
├── fonts
│ ├── AllerDisplay.ttf
│ ├── Aller_Bd.ttf
│ ├── Aller_BdIt.ttf
│ ├── Aller_It.ttf
│ ├── ...
│ ├── Ubuntu Mono derivative Powerline Bold Italic.ttf
│ ├── Ubuntu Mono derivative Powerline Bold.ttf
│ ├── Ubuntu Mono derivative Powerline Italic.ttf
│ └── Ubuntu Mono derivative Powerline.ttf
└── installs
├── apm_list.txt
├── brew-cask_list.txt
├── brew_list.txt
├── gem_list.txt
├── installed_apps_list.txt
├── macports_list.txt
├── npm_list.txt
└── pip_list.txt
5 directories, 214 files
Inspiration
I back up system images of my MacBook Pro to an external SSD multiple times every week, and it always takes way too long. I wanted to speed this up, so I took a look at what was actually being backed up. I saw that my brew
, npm
, and pip
libraries took up way more memory than I imagined.
And it's totally unnecessary! All you need to "back up" your package installs is a list of the installed packages from each package manager. If you have these lists, restoring your system package installs is easy: $ pip install -r pip_list.txt
, for example. Additionally, you have the added bonus of always installing up-to-date packages after an OS wipe and reinstall.
I could now safely cut down my backup size by almost 10GB
by replacing my pip
, brew
, brew cask
and npm
install libraries with simple text files, which cuts down the back up time significantly.
Once I'd built that functionality, I wanted to have a single backup utility for files and folders often used by developers, so I added the ability to backup dotfiles
and fonts
. (Note: Because just having a list of installed fonts or a list of dotfiles that exist isn't very useful, shallow-backup
creates copies of all dotfiles and user installed fonts.)
What's Next?
- Automatic restic backup.
- MacOS GUI.
How to Contribute
- Clone repo and create a new branch:
$ git checkout https://github.com/alichtman/shallow-backup -b name_for_new_branch
. - Make changes and test
- Submit Pull Request with comprehensive description of changes
Project details
Release history Release notifications | RSS feed
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
Hashes for shallow_backup-1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9c877f70468b7c166ae00530c606b6e0c947c1213b6d9d0f1d173c1776156a8 |
|
MD5 | 201036f9265e713d8c374f0398a488ca |
|
BLAKE2b-256 | d65090bfd7b8962c4b27f003a5ebd3f3298e2127f2633260a949430312f97563 |