This is a command line application to manage and fine-tune Time Machine exclude paths.

Overview

heptapod

This is a command line application to manage and fine-tune Time Machine exclude paths.

This repository is a WIP! The advertised functionality is nonexistent yet :(

Repo state

done:

  • architecture the protocol/configs
  • most of asimovs features are ported
  • example rules added
  • command line interface
  • option to dryrun, show inner states, write to file
  • purge option
    • we should write down what paths excluded by us, and include them back

todos:

  • handle global deps (m2, ivy, nvm, npm)
  • support tmignore functionality
  • support tmignore like funcionality with dockerignore
  • regexp pattern
  • brew package
  • ghactions
  • hook to rerun periodically/before tmbackups
  • port asimov's issues (spotify, spotlight)
  • docker support (at least tell if docker vm is persisted or not)
    • this is kinda easy with tmutil.GetExcludeList()
  • android vms?
    • this should be also easy
  • preemptive search that tells you how many files with which size will be excluded/included
    • nice to have, we can tell the sizes, but counting files need to actually count the files which could be slow AH
  • speedtest it
  • modify the backup intervals and frequencies
    • not sure it can be done with tmutil, but there are applications for this
  • probably adding . and .. will break the execution shortcuts and need to fix them
  • wildcards like *.sh not working right now, do we want to make them work?

Notes for migrating to a new machine

xcode-select --install may be needed after a migration

Rules

Every rule has a searchPaths, ignorePaths.

  • name for categorization
  • enabled for easier enable/disable
  • searchPaths are the root of the rule search like ~
  • ignorePaths are subpaths that we want to ignore to make the run quicker
    • like we want to parse dirs under ~, but not ~/Downloads
  • type is the ruletype
    • file-trigger
    • regexp
    • ignore-files
  • settings other type setting see below

Ignore (not yet implemented)

Parses the .gitignore or .dockerignore files, and excludes its contents.

  • forceAddPaths are files that we add even if they would be otherwise excluded
    • like .gitignore ignores .env files but we forcefully want to add them back
  • fileName
    • .gitignore or .dockerignore

Regexp (not yet implemented)

Ignores all files/folders with the given regexp. This can be slow!

  • regexp

File trigger

Ignores files/dirs based on other files existence, made for easy language dep ignores.

  • fileTrigger like package.json or .git
  • excludePaths like node-modules or .

Credits

Issues
Releases(v0.1.4)
Owner
Gergő Törcsvári
Gergő Törcsvári
This is a command line application to manage and fine-tune Time Machine exclude paths.

heptapod This is a command line application to manage and fine-tune Time Machine exclude paths. This repository is a WIP! The advertised functionality

Gergő Törcsvári 1 Oct 13, 2021
A Commander for modern Go CLI interactions

Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files. Cobra is used i

Steve Francia 23.5k Oct 18, 2021
General purpose reloader for all projects.

leaf General purpose reloader for all projects. Command leaf watches for changes in the working directory and runs the specified set of commands whene

Vaibhav 117 Sep 21, 2021
:cherry_blossom: A command-line fuzzy finder

fzf is a general-purpose command-line fuzzy finder. It's an interactive Unix filter for command-line that can be used with any list; files, command hi

Junegunn Choi 39.7k Oct 15, 2021
Sloc, Cloc and Code: scc is a very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go

Sloc Cloc and Code (scc) A tool similar to cloc, sloccount and tokei. For counting physical the lines of code, blank lines, comment lines, and physica

Ben Boyter 2.8k Oct 25, 2021
CLI tool for manipulating Ceph's upmap exception table.

pgremapper When working with Ceph clusters, there are actions that cause backfill (CRUSH map changes) and cases where you want to cause backfill (movi

DigitalOcean 14 Sep 27, 2021
A modern UNIX ed (line editor) clone written in Go

ed (the awesome UNIX line editor) ed is a clone of the UNIX command-line tool by the same name ed a line editor that was nortorious for being and most

James Mills 45 May 29, 2021
Fully featured Go (golang) command line option parser with built-in auto-completion support.

go-getoptions Go option parser inspired on the flexibility of Perl’s GetOpt::Long. Table of Contents Quick overview Examples Simple script Program wit

David Gamba 37 Sep 17, 2021
Simplistic interactive filtering tool

peco Simplistic interactive filtering tool NOTE: If you are viewing this on GitHub, this document refers to the state of peco in whatever current bran

null 6.5k Oct 20, 2021
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.

Table of contents Introduction Reference Contributing Introduction Overview git-xargs is a command-line tool (CLI) for making updates across multiple

Gruntwork 496 Oct 15, 2021
CONTRIBUTIONS ONLY: A Go (golang) command line and flag parser

CONTRIBUTIONS ONLY What does this mean? I do not have time to fix issues myself. The only way fixes or new features will be added is by people submitt

Alec Thomas 3.1k Oct 18, 2021
gon is a simple, no-frills tool for signing and notarizing your CLI binaries for macOS

Sign, notarize, and package macOS CLI tools and applications written in any language. Available as both a CLI and a Go library.

Mitchell Hashimoto 1.1k Oct 12, 2021
1Pass - 1Password Linux CLI explorer

1Pass is a command line application that allows to explore 1Password OPVault format. Application was created because there is no official 1Password desktop client for Linux users.

Maciej Bedra 5 Sep 12, 2021
🔄 A command-line utility to export Protocol Buffers (proto) files to YAML, and JSON

proto2yaml ?? A command-line utility to export Protocol Buffers (proto) files to YAML, and JSON. Currently supported exports are for: Packages Service

Kristof Kowalski 4 Oct 8, 2021
CLI - A package for building command line app with go

Command line interface Screenshot Key features Lightweight and easy to use. Defines flag by tag, e.g. flag name(short or/and long), description, defau

王仕晋 616 Oct 25, 2021
Another CLI framework for Go. It works on my machine.

Command line interface framework Go framework for rapid command line application development

Ulrich Kautz 111 Sep 22, 2021
💻 PTerm | Pretty Terminal Printer A golang module to print pretty text

✨ PTerm is a modern go module to beautify console output. Featuring charts, progressbars, tables, trees, and many more ?? It's completely configurable and 100% cross-platform compatible.

null 2.1k Oct 22, 2021
👀 A modern watch command. Time machine and pager etc.

Viddy Modern watch command. Viddy well, gopher. Viddy well. Demo Features Basic features of original watch command. Execute command periodically, and

Takumasa Sakao 1.1k Oct 22, 2021
Soren L. Hansen 1.4k Oct 25, 2021