Easily create 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?
-
dotfiles
anddotfolders
..bashrc
.bash_profile
.gitconfig
.pypirc
.shallow-backup
.ssh/
.vim/
.zshrc
-
Application Preferences
- Sublime Text
- Terminal (Coming soon!)
- VS Code (Coming soon!)
-
Insalled
packages
.Atom
Packages (apm
)brew
andcask
gem
pip
npm
macports
Sublime Text
Packages~/Applications/
directory
-
User installed
fonts
.
Installation
-
Install with
pip
$ pip install shallow-backup
$ 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 simple
.txt
files. - Easily back up your dotfiles.
- 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
└── packages
├── 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
Inspiration
I back up system images of my MacBook Pro to an external SSD multiple times per 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 really 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 cut down my backup size by almost 10GB
by replacing my pip
, brew
, brew cask
and npm
install libraries with simple text files, also cutting 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.)
Upcoming Features
- GUI.
- Option to back up specific paths.
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
- Open 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 Distributions
Built Distribution
Hashes for shallow_backup-1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac64508d67ccc21886b90f679a3eacccf7f8ccbdf5c7bdbb65c8ac47ea99d08e |
|
MD5 | 83a9097009150b1504c103272537c0a0 |
|
BLAKE2b-256 | c887d5d1ee02d982c9f42ab9e30412ffda8a6ae92c4cee91ba357ab42614c951 |