This commit is contained in:
decentral1se 2021-07-10 15:46:59 +02:00
parent 0beb309e74
commit 0276f41ae8
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC

View File

@ -3,3 +3,39 @@
> **WARNING**: still in prototype stage... > **WARNING**: still in prototype stage...
Automate your mass typo updates. Automate your mass typo updates.
## 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()
```