3.1 KiB
pidcat-repl
A fork of JakeWharton/pidcat that adds an
interactive, full-screen filter UI on top of the original package-filtered adb logcat
viewer.
Layout
Everything lives in a single script, pidcat.py. There is no build step, no test suite,
and no dependencies beyond Python 3 and adb on the PATH.
stream(emit)parsesadb logcatoutput and hands each formatted block to a callback. Both output modes feed off it.InteractiveUIis the fork's addition: alternate-screen rendering, a bottom prompt line, and live filtering of the retained scrollback.--plainbypassesInteractiveUIand prints blocks as they arrive, which is the upstream behavior. Non-TTY stdin or stdout forces plain mode too.
Run it directly during development: ./pidcat.py com.example.app.
Homebrew distribution
This fork is distributed through a personal tap, not homebrew-core. Two repos are involved:
imcarlost/pidcat-repl(this repo) holds the source and the version tags.imcarlost/homebrew-pidcat-replholdsFormula/pidcat-repl.rb. Cloned locally at../homebrew-pidcat-repl.
The core formula named pidcat is upstream's, unrelated to this one. Homebrew derives the
formula class name from the filename, so pidcat-repl.rb must keep the class
PidcatRepl.
Publishing a new version
The formula pins a tarball URL plus its sha256, so the version bump, the tag, and the formula must all move together. Order matters: the sha256 can only be computed after the tag is pushed, because it hashes GitHub's generated tarball.
-
Bump
__version__inpidcat.pyand promote theUnreleasedheading inCHANGELOG.mdto the new version with today's date. -
Commit and push to
main. -
Tag and push:
git tag vX.Y.Z && git push origin vX.Y.Z. -
Compute the tarball hash:
curl -sL https://github.com/imcarlost/pidcat-repl/archive/refs/tags/vX.Y.Z.tar.gz \ | shasum -a 256 -
In
../homebrew-pidcat-repl/Formula/pidcat-repl.rb, update both theurlversion and thesha256. Commit and push.
Keep __version__ in sync with the tag. A mismatch is invisible until someone runs
pidcat --version and sees the old number.
If a tag has to be moved after it was pushed, the tarball hash changes with it, so the
formula's sha256 must be recomputed and pushed again or installs fail checksum
verification.
Installing and testing the tap
brew tap imcarlost/pidcat-repl
brew install pidcat-repl
Recent Homebrew versions refuse formulae from untrusted third-party taps. The install
fails with a Refusing to load formula ... from untrusted tap error until the tap is
trusted once per machine:
brew trust imcarlost/pidcat-repl
That is a local trust decision each user makes for themselves; there is no way to
pre-authorize the tap from the publishing side. Getting into homebrew-core instead is not
realistic for this fork, since core already carries upstream pidcat and forks rarely
meet its notability bar.
After pushing a formula change, brew update before reinstalling, or the tap clone under
$(brew --repository)/Library/Taps/ will still be on the old commit.