Add quack easter egg and development docs

Add a hidden 'quack' command that displays DuckTales ASCII art of
Launchpad McQuack. Also document the development workflow in README,
including how to run tests with uv and the optional venv setup.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Erich Blume 2026-01-11 20:09:07 -08:00
commit 34e63c41c4
2 changed files with 75 additions and 0 deletions

View file

@ -79,6 +79,38 @@ The generated plist configures the script to:
- Keep alive (restart if it exits)
- Log stdout/stderr to `~/Library/Logs/mcquack.<scriptname>.{out,err}.log`
## Development
mcquack uses [uv](https://github.com/astral-sh/uv) for dependency management. Thanks to the
uv shebang at the top of `mcquack.py`, you can always run the script directly without any
setup:
```bash
./mcquack.py list
```
This works for users and developers alike—no virtual environment activation or `python`
command needed. uv handles everything automatically.
### Running Tests
```bash
uv run pytest
```
### Virtual Environment (Optional)
If you prefer working in a virtual environment (e.g., for IDE support or running
`python mcquack.py` directly), you can create and activate one:
```bash
uv venv
source .venv/bin/activate
```
After activation, `python mcquack.py` will work as expected. But again, `./mcquack.py`
always works without this step.
## License
MIT

View file

@ -272,5 +272,48 @@ def delete(
typer.echo(f"Deleted: {plist_path}")
@app.command(hidden=True)
def quack() -> None:
"""Quack!"""
art = r"""
___ _ _____ _
| \ _ _ __| |_|_ _|_ _| |___ ___
| |) | || / _| / / | |/ _` | / -_|_-<
|___/ \_,_\__|_\_\ |_|\__,_|_\___/__/
'' .``,l"
"[}ll1)f/1I
!__YpQm+:]",
~>. ,i,i<nxnav(,:" .
;/Zj, ::'::[trcx(i<-" `i``umv~'
[do| .":]z]<<[; :fzLwddmw_
cWr xxdvzr\fr\_:-~' "QOL0b\;
X*> `!>~1cXUXvcLbccL_{1! . +YM)
:U1. <fUmpZUxXmphkqwv-]?+ .i~-}>.
";|XmkodUf{?_?{xCCZw\[{[~>">{}{]{i
`>]11[][[)UmYrz+fx1}{{}<_]{{{{{?.
"I<___]+^Qo**h)}}]}{{}1+}1{}{{{<
`+}{{{{}]<|8Mkou?{{{{{}1?,~][[[?l
;{{}}}[[]?v0r?|{{{{{{{1?` `^`
![}{{}[]i .?{{[]}}~'
.,;;,` i]_fC|>
"{vxfXQcv{,
.>/zJJJCUXXXJz]
'?vYCCUXcvvvcXJJU>
!XJJYv\?>l::,I[Yu'
)C/l. <n,.
`/\. ;{+
<{~ ![}[i:"^`^`
'"I+}}[I .-{}}}}[[[}-`
;--][[}{}}}l 'i][}}}[]]+^
;[[[}}}}[_, .";II" .
.```:!!;^
"If we're not back by dawn... call the press!"
- Launchpad McQuack
"""
typer.echo(art)
if __name__ == "__main__":
app()