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

50 lines
1.3 KiB
Markdown

# 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](https://yaml.readthedocs.io/en/latest/)
- **--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
```python
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()
```