All Projects β†’ stevegrunwell β†’ Asimov

stevegrunwell / Asimov

Licence: mit
Automatically exclude development dependencies from Apple Time Machine backups

Projects that are alternatives of or similar to Asimov

Dependency spy
Find known vulnerabilities in your dependencies
Stars: ✭ 87 (-87.66%)
Mutual labels:  dependencies, hacktoberfest
Homebrew Core
🍻 Default formulae for the missing package manager for macOS (or Linux)
Stars: ✭ 10,450 (+1382.27%)
Mutual labels:  hacktoberfest, homebrew
Linuxbrew Core
🍻🐧 Core formulae for the Homebrew package manager on Linux
Stars: ✭ 999 (+41.7%)
Mutual labels:  hacktoberfest, homebrew
Borealis
Hardware accelerated, controller and TV oriented UI library for PC and Nintendo Switch (libnx).
Stars: ✭ 135 (-80.85%)
Mutual labels:  hacktoberfest, homebrew
Nxdk
The cross-platform, open-source SDK to develop for original Xbox: *new* xdk
Stars: ✭ 200 (-71.63%)
Mutual labels:  hacktoberfest, homebrew
Homebrew
Development repository for the homebrew cookbook
Stars: ✭ 137 (-80.57%)
Mutual labels:  hacktoberfest, homebrew
Homebrew Openjdk
AdoptOpenJDK HomeBrew Tap
Stars: ✭ 1,798 (+155.04%)
Mutual labels:  hacktoberfest, homebrew
Homebrew Bio
πŸΊπŸ”¬ Bioinformatics formulae for the Homebrew package manager (macOS and Linux)
Stars: ✭ 237 (-66.38%)
Mutual labels:  hacktoberfest, homebrew
Rebar3
Erlang build tool that makes it easy to compile and test Erlang applications and releases.
Stars: ✭ 1,295 (+83.69%)
Mutual labels:  dependencies, hacktoberfest
Open Source Mac Os Apps
πŸš€ Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps
Stars: ✭ 28,908 (+4000.43%)
Mutual labels:  hacktoberfest
Hex
Package manager for the Erlang VM
Stars: ✭ 699 (-0.85%)
Mutual labels:  hacktoberfest
Powershell
PowerShell for every system!
Stars: ✭ 31,244 (+4331.77%)
Mutual labels:  hacktoberfest
Bat
A cat(1) clone with wings.
Stars: ✭ 30,833 (+4273.48%)
Mutual labels:  hacktoberfest
Fae
CMS for Rails. For Reals.
Stars: ✭ 701 (-0.57%)
Mutual labels:  hacktoberfest
Date Fns
⏳ Modern JavaScript date utility library βŒ›οΈ
Stars: ✭ 27,650 (+3821.99%)
Mutual labels:  hacktoberfest
Oak
Meaningful control of data in distributed systems.
Stars: ✭ 698 (-0.99%)
Mutual labels:  hacktoberfest
Modernizr
Modernizr is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser.
Stars: ✭ 25,103 (+3460.71%)
Mutual labels:  hacktoberfest
Symfony
The Symfony PHP framework
Stars: ✭ 26,220 (+3619.15%)
Mutual labels:  hacktoberfest
Team Comtress 2
Team Fortress 2, but with a lot of fixes, QoL improvements and performance optimizations!
Stars: ✭ 701 (-0.57%)
Mutual labels:  hacktoberfest
Prologue
Prologue is an elegant web framework written in Nim.
Stars: ✭ 700 (-0.71%)
Mutual labels:  hacktoberfest

Asimov

Build Status Requires macOS 10.13 (High Sierra) or newer MIT license

Those people who think they know everything are a great annoyance to those of us who do.
β€” Issac Asimov

For macOS users, Time Machine is a no-frills, set-it-and-forget-it solution for on-site backups. Plug in an external hard drive (or configure a network storage drive), and your Mac's files are backed up.

For the average consumer, Time Machine is an excellent choice, especially considering many Mac owners may only have Time Machine as a backup strategy. For developers, however, Time Machine presents a problem: how do I keep project dependencies from taking up space on my Time Machine drive?

Asimov aims to solve that problem, scanning your filesystem for known dependency directories (e.g. node_modules/ living adjacent to a package.json file) and excluding them from Time Machine backups. After all, why eat up space on your backup drive for something you could easily restore via npm install?

Installation

Asimov may be installed in a few different ways:

Installation via Homebrew

The easiest way to install Asimov is through Homebrew:

$ brew install asimov

If you would prefer to use the latest development release, you may append the --head flag:

$ brew install asimov --head

Once installed, you may instruct Homebrew to automatically load the scheduled job, ensuring Asimov is being run automatically every day:

$ sudo brew services start asimov

If you don't need or want the scheduled job, you may run Asimov on-demand:

$ asimov

Manual installation

If you would prefer to install Asimov manually, you can do so by cloning the repository (or downloading and extracting an archive of the source) anywhere on your Mac:

$ git clone https://github.com/stevegrunwell/asimov.git --depth 1

After you've cloned the repository, run the install.sh script to automatically:

  • Symlink Asimov to /usr/local/bin, making it readily available from anywhere.
  • Schedule Asimov to run once a day, ensuring new projects' dependencies are quickly excluded from Time Machine backups.
  • Run Asimov for the first time, finding all current project dependencies adding them to Time Machine's exclusion list.

How it works

At its essence, Asimov is a simple wrapper around Apple's tmutil program, which provides more granular control over Time Machine.

Asimov finds recognized dependency directories, verifies that the corresponding dependency file exists and, if so, tells Time Machine not to worry about backing up the dependency directory.

Don't worry about running it multiple times, either. Asimov is smart enough to see if a directory has already been marked for exclusion.

Retrieving excluded files

If you'd like to see all of the directories and files that have been excluded from Time Machine, you can do so by running the following command (props Brant Bobby on StackOverflow):

$ sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"

If a directory has been excluded from backups in error, you can remove the exclusion using tmutil:

$ tmutil removeexclusion /path/to/directory
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].