Populate README, add poetry.lock

This commit is contained in:
2025-11-10 19:10:34 +00:00
parent 84f09d303e
commit a11f9e8a94
2 changed files with 101 additions and 0 deletions

View File

@@ -1 +1,95 @@
# mirro
**mirro** is a tiny safety-first editing wrapper for text files.
You edit a temporary file, **mirro** detects whether anything changed, and if it did, it saves a backup of the original before writing your changes.
## Why mirro?
Well... have you ever been in the _“ugh, I forgot to back this up first”_ situation?
No?
Stop lying... (:))
**mirro** gives you a built-in safety net:
- never edits the real file directly
- detects whether the edit actually changed content
- creates a timestamped backup only when changes occurred
- clearly labels backups so you know exactly what they came from
- respects the users `$EDITOR` when possible
- requires `sudo` only when actually needed
Its simple, predictable, and hard to misuse.
I mean... the only thing you need to remember is _to use it_.
## How it works
**mirro** reads the original file (or pre-populates new files with a friendly message).
It writes that content into a temporary file.
It launches your `$EDITOR` to edit the temp file.
When the editor closes, **mirro** compares old vs new.
If nothing changed:
```
file hasn't changed
```
If changed:
```
file changed; original backed up at: ~/.local/share/mirro/ (or /root/.local/share/mirro/ under sudo)
```
Backed up files include a header:
```
# ---------------------------------------------
# mirro backup
# Original file: /path/to/whatever.conf
# Timestamp: 2025-11-10 17:44:00 UTC
# ---------------------------------------------
```
So you never lose track of the original location.
### Backup directory
By default all the backups will be stored at:
```
~/.local/share/mirro/
```
so under `sudo`:
```
/root/.local/share/mirro/
```
Backups are named like:
```
filename.ext.orig.20251110T174400.bak
```
## Installation
**NOTE**: To use mirro with sudo, the path to mirro must be in the $PATH seen by root.
Either install mirro as root (preferred), use sudo -E mirro, or add the $PATH to /etc/sudoers using its Defaults secure_path parameter.
Install via PyPI (preferred):
```
pip install mirro
```
Or clone the repo and install locally:
```
git clone https://github.com/mdaleo404/mirro.git
cd mirro/
poetry install
```