This repository has been archived on 2021-07-15. You can view files and clone it, but cannot push or open issues or pull requests.
tyop/README.md

1.3 KiB

tyop

WARNING: still in prototype stage...

Automate your mass typo updates.

Run/Hack

$ python3 -m venv .venv && source .venv/bin/activate 
$ pip install -r requirements.txt
$ python mymigration.py --yaml

CLI

  • --reset: run git-checkout on all of your glob matches and exit
  • --validate: ensure your Migration sub-class is valid
  • --yaml: tell tyop that it should try to load the YAML with ruamel.yaml
  • --debug: enable debug logging

Logic

  • Match all files specified by the GLOB pattern and apply the following
    • Check out main/master, git-pull and git-checkout for clean branch
    • Feed matched file contents into Migration sub-class and show the diff
    • Show a few diffs to make sure things are running smoothly and then apply to all matches
    • Iterate through all matches and git-commit/git-push changes (Use s to skip changes)

Example migration

from tyop import Migration


class InternalTrueMigration(Migration):
    GLOB = "~/.abra/apps/**/compose*.yml"

    def migrate(self, compose):
        try:
            if "internal" in compose["networks"]:
                compose["networks"]["internal"] = {"internal": True}
            return compose
        except Exception:
            return compose


InternalTrueMigration()