Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup search module #14260

Merged
merged 4 commits into from Dec 21, 2022

Conversation

apainintheneck
Copy link
Contributor

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same change?
  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes? Here's an example.
  • Have you successfully run brew style with your changes locally?
  • Have you successfully run brew typecheck with your changes locally?
  • Have you successfully run brew tests with your changes locally?

This is a cleanup of the search related logic that is related to #14240.

Essentially, it does a few things.

  • ba664fa
    • It is unnecessary to have this logic in extend/os since the change to passing the --formula everywhere.
  • 0ae416d
    • This logic was duplicated in cmd/desc.rb and search.rb so I changed it so both use search.rb.
    • I was also able to move this logic out of extend/os for the reason given above and extend/os/search has now been removed.
  • 47b3f6f
    • The search module was extended/included in a few different places but the only place that used all of it's methods was the search command. This turns all methods in search.rb into class methods and stops extending/including it. This is mostly a style thing. It has the advantages of not polluting the local namespace, allowing us to conditionally include it, and also makes it easier to see which methods are external and internal to a file.

Of the above three changes I think the first two are no-brainers while I could be convinced that the third one is unnecessary since it's mostly a style thing.

To test for regressions I tested the following commands along with their --cask and --formula counterparts.

brew install -n _not_a_package_
Results
Last login: Sat Dec 17 11:42:42 on ttys001
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
~ $ HOMEBREW_NO_AUTO_UPDATE=1 brew install -n google
Warning: No available formula with the name "google". Did you mean googler or goose?
==> Searching for similarly named formulae and casks...
==> Formulae
aws-google-auth                   google-java-format                googletest
google-authenticator-libpam       google-sparsehash                 goose
google-benchmark                  google-sql-tool
google-go ✔                       googler

To install aws-google-auth, run:
  brew install aws-google-auth

==> Casks
google-ads-editor                                  google-drive
google-analytics-opt-out                           google-drive-file-stream
google-assistant                                   google-earth-pro
google-chat                                        google-japanese-ime
google-chat-electron                               google-japanese-ime-dev
google-chrome                                      google-trends
google-chrome-beta                                 google-web-designer
google-chrome-canary                               googleappengine
google-chrome-dev                                  marshallofsound-google-play-music-player
google-cloud-sdk                                   moefe-google-translate

To install google-ads-editor, run:
  brew install --cask google-ads-editor
~ $ HOMEBREW_NO_AUTO_UPDATE=1 brew install -n --cask google
Warning: Cask 'google' is unavailable: No Cask with this name exists.
==> Searching for similarly named formulae and casks...
==> Casks
google-ads-editor                                  google-drive
google-analytics-opt-out                           google-drive-file-stream
google-assistant                                   google-earth-pro
google-chat                                        google-japanese-ime
google-chat-electron                               google-japanese-ime-dev
google-chrome                                      google-trends
google-chrome-beta                                 google-web-designer
google-chrome-canary                               googleappengine
google-chrome-dev                                  marshallofsound-google-play-music-player
google-cloud-sdk                                   moefe-google-translate

To install google-ads-editor, run:
  brew install --cask google-ads-editor
~ $ HOMEBREW_NO_AUTO_UPDATE=1 brew install -n --formula google
Warning: No available formula with the name "google". Did you mean googler or goose?
==> Searching for similarly named formulae and casks...
==> Formulae
aws-google-auth                   google-java-format                googletest
google-authenticator-libpam       google-sparsehash                 goose
google-benchmark                  google-sql-tool
google-go ✔                       googler

To install aws-google-auth, run:
  brew install aws-google-auth
~ $ 
brew search _search_term_
brew search --desc --eval-all _search_term_
Results
Last login: Sat Dec 17 11:45:34 on ttys001
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
~ $ brew search blue
==> Formulae
bluepill                          bluetoothconnector                blueutil

==> Casks
bluebubbles      bluegriffon      bluej            bluesense        bluestacks       bluewallet
bluefish         blueharvest      bluejeans        bluesnooze       bluetility
~ $ brew search --casks blue
==> Casks
bluebubbles      bluegriffon      bluej            bluesense        bluestacks       bluewallet
bluefish         blueharvest      bluejeans        bluesnooze       bluetility
~ $ brew search --formula blue
==> Formulae
bluepill                          bluetoothconnector                blueutil
~ $ brew search --desc --eval-all blue
==> Formulae
blazegraph: Graph database supporting RDF data model, Sesame, and Blueprint APIs
bluetoothconnector: Connect and disconnect Bluetooth devices
blueutil: Get/set bluetooth power and discoverable state
drafter: Native C/C++ API Blueprint Parser
hidapi: Library for communicating with USB and Bluetooth HID devices
libbtbb: Bluetooth baseband decoding library

==> Casks
airunlock: (AirUnlock) Tool to lock or unlock the macbook using an Android phone via Bluetooth
bleunlock: (BLEUnlock) Lock/unlock Apple computers using the proximity of a bluetooth low energy device
bluebubbles: (BlueBubbles) Server for forwarding iMessages to clients within the BlueBubbles App ecosystem
bluefish: (Bluefish) Open source code editor
bluegriffon: (BlueGriffon) Web and EPUB editor
blueharvest: (BlueHarvest) Remove metadata files from external drives
bluej: (BlueJ) Java Development Environment designed for begginers
bluejeans: (BlueJeans) Video conferencing for the digital workplace
bluesense: (BlueSense) [no description]
bluesnooze: (Bluesnooze) Prevents your sleeping computer from connecting to Bluetooth accessories
bluestacks: (BlueStacks) Mobile gaming platform
bluetility: (Bluetility) Bluetooth Low Energy browser
bluewallet: (BlueWallet) Bitcoin wallet and Lightning wallet
bubo: (Bubo, Spotify Bluetooth Headset Listener) [no description]
flic: (Flic) Driver for the Flic bluetooth button
iris: (Iris) Blue light filter and eye protection software
usb-overdrive: (USB Overdrive) USB and Bluetooth device driver
~ $ brew search --desc --eval-all --formula blue
==> Formulae
blazegraph: Graph database supporting RDF data model, Sesame, and Blueprint APIs
bluetoothconnector: Connect and disconnect Bluetooth devices
blueutil: Get/set bluetooth power and discoverable state
drafter: Native C/C++ API Blueprint Parser
hidapi: Library for communicating with USB and Bluetooth HID devices
libbtbb: Bluetooth baseband decoding library
~ $ brew search --desc --eval-all --cask blue
==> Casks
airunlock: (AirUnlock) Tool to lock or unlock the macbook using an Android phone via Bluetooth
bleunlock: (BLEUnlock) Lock/unlock Apple computers using the proximity of a bluetooth low energy device
bluebubbles: (BlueBubbles) Server for forwarding iMessages to clients within the BlueBubbles App ecosystem
bluefish: (Bluefish) Open source code editor
bluegriffon: (BlueGriffon) Web and EPUB editor
blueharvest: (BlueHarvest) Remove metadata files from external drives
bluej: (BlueJ) Java Development Environment designed for begginers
bluejeans: (BlueJeans) Video conferencing for the digital workplace
bluesense: (BlueSense) [no description]
bluesnooze: (Bluesnooze) Prevents your sleeping computer from connecting to Bluetooth accessories
bluestacks: (BlueStacks) Mobile gaming platform
bluetility: (Bluetility) Bluetooth Low Energy browser
bluewallet: (BlueWallet) Bitcoin wallet and Lightning wallet
bubo: (Bubo, Spotify Bluetooth Headset Listener) [no description]
flic: (Flic) Driver for the Flic bluetooth button
iris: (Iris) Blue light filter and eye protection software
usb-overdrive: (USB Overdrive) USB and Bluetooth device driver
~ $ 
brew desc --eval-all --search _search_term_
brew desc --eval-all --name _search_term_
brew desc --eval-all --description _search_term_
Results
Last login: Sat Dec 17 11:51:43 on ttys001
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
~ $ brew desc --eval-all --search music
==> Formulae
abcm2ps: ABC music notation software
abcmidi: Converts abc music notation files to MIDI files
alda: Music programming language for musicians
chordii: Text file to music sheet converter
clamz: Download MP3 files from Amazon's music store
cmus: Music player with an ncurses based interface
cmusfm: Last.fm standalone scrobbler for the cmus music player
csound: Sound and music computing system
flactag: Tag single album FLAC files with MusicBrainz CUE sheets
game-music-emu: Videogame music file emulator collection
glyr: Music related metadata search engine with command-line interface and C API
libdiscid: C library for creating MusicBrainz and freedb disc IDs
libmusicbrainz: MusicBrainz Client Library
libopenmpt: Software library to decode tracked music files
libxmp: C library for playback of module music (MOD, S3M, IT, etc)
lilypond: Music engraving program
mdxmini: Plays music in X68000 MDX chiptune format
mikmod: Portable tracked music player
moc: Terminal-based music player
mpc: Command-line music player client for mpd
mpd: Music Player Daemon
ncmpc: Curses Music Player Daemon (MPD) client
ncmpcpp: Ncurses-based client for the Music Player Daemon
pmdmini: Plays music in PC-88/98 PMD chiptune format
pms: Practical Music Search, an ncurses-based MPD client
projectm: Milkdrop-compatible music visualizer
sc68: Play music originally designed for Atari ST and Amiga computers
takt: Text-based music programming language
xmp: Command-line player for module music formats (MOD, S3M, IT, etc)

==> Casks
5kplayer: (5KPlayer) Play 4K/1080p/360° video, MP3 AAC APE FLAC music without quality loss
a-better-finder-rename: (A Better Finder Rename) Renamer for files, music and photos
ableton-live-intro: (Ableton Live Intro) Sound and music editor
ableton-live-lite: (Ableton Live Lite) Sound and music editor
ableton-live-standard: (Ableton Live Standard) Sound and music editor
ableton-live-suite: (Ableton Live Suite) Sound and music editor
amazon-music: (Amazon Music) Desktop client for Amazon Music
astrofox: (Astrofox) Motion graphics program for music visualisations
audius: (Audius) Music streaming and sharing platform
awa: (AWA) Music streaming service
background-music: (Background Music) Audio utility
bowtie: (Bowtie) Control your music with customizable shortcuts
cider: (Cider) Open source and community oriented Apple Music client
clementine: (Clementine) Music player and library organizer
coverload: (CoverLoad) Download high quality artwork for movies, music albums, and more
deezer: (Deezer) Music player
denemo: (Denemo) Music notation program
engine-prime: (Engine Prime) Music Management Software for Denon's Engine OS Hardware
exfalso: (Ex Falso) Music tag editor
filebot: (FileBot) Tool for organizing and renaming movies, TV shows, anime or music
focusatwill: (Focus@Will) Personalized focus music
freeyourmusic: (FreeYourMusic) Move playlists, tracks, and albums between music platforms
guitar-pro: (Guitar Pro) Sheet music editor software for guitar, bass, keyboards, drums and more
harmony: (Harmony) Music player
headset: (Headset) Music player powered by YouTube and Reddit
icons8: (Icons8 App) App for browsing icon, photo and music packages
idagio: (IDAGIO) Classical music streaming app
ieasemusic: (ieaseMusic) Third-party NetEase cloud music player
isyncer: (iSyncer) Apple Music playlist exporting tool
itunes-volume-control: (iTunes Volume Control) Control the volume of Apple Music and Spotify using keyboard volume keys
jamulus: (Jamulus) Play music online with friends
jqbx: (JQBX) Listen to Spotify music in sync with others
keyfinder: (KeyFinder) Music key detection tool
kkbox: (KKBOX) Music streaming service
kmbmpdc: (kmbmpdc, kawaii menu bar music player daemon controller) [no description]
kugoumusic: (Kugou Music) Digital music service
lastfm: (Last.fm Scrobbler) Music services manager
lidarr: (Lidarr) Looks and smells like Sonarr but made for music
lmms: (LMMS) Music production software
lx-music: (LX Music Assistant Desktop Edition, 洛雪音乐助手桌面版) Music app base on Electron & Vue
marshallofsound-google-play-music-player: (Google Play Music Desktop Player) [no description]
meta: (Meta) Tag editor for digital music
milkytracker: (MilkyTracker) Music tracker compatible with FT2
mixed-in-key: (Mixed In Key) Harmonic mixing for DJs and music producers
moradownloader: (Mora Downloader) Online music and video store for the Japanese market
museeks: (Museeks) Music player
musescore: (MuseScore) Open-source music notation software
music-bar: (Music Bar) Control Apple Music right from your menu bar
music-manager: (Google Play Music Manager) [no description]
musicbrainz-picard: (MusicBrainz Picard) Music tagger
musictube: (Musictube) Streaming music player
neteasemusic: (NetEase cloud music, 网易云音乐) Music streaming platform
notunes: (noTunes) Simple application that will prevent iTunes or Apple Music from launching
nuclear: (Nuclear) Streaming music player
nulloy: (Nulloy) Music player
pd-l2ork: (Pd-l2ork, Purr Data) Programming environment for computer music and multimedia applications
plexamp: (Plexamp) Music player focusing on visuals
plug: (Plug) Music player for The Hype Machine
polyphone: (Polyphone) Soundfont editor for quickly designing musical instruments
pretzel: (Pretzel) DMCA-safe music for creators
qobuz: (Qobuz) Catalogue of hi-res music for streaming and download
qqmusic: (QQ音乐) Chinese music streaming application
quodlibet: (Quod Libet) Music player and music library manager
radiant-player: (Radiant Player) App wrapper for Google Play Music
rekordbox: (rekordbox) Free Dj app to prepare and manage your music files
rockboxutility: (Rockbox Utility) Automated installer for the Rockbox digital music player firmware
roon: (Roon) Music player
roonbridge: (Roon Bridge) Music player network extender
schism-tracker: (Schism Tracker) Oldschool sample-based music composition tool
sonic-pi: (Sonic Pi) Code-based music creation and performance tool
sonic-visualiser: (Sonic Visualiser) Visualisation, analysis, and annotation of music audio recordings
sonixd: (Sonixd) Desktop client for Subsonic-API and Jellyfin music servers
splice: (Splice) Cloud-based music creation and collaboration platform
spotify: (Spotify) Music streaming service
strawberry: (Strawberry) Music player and music collection organizer
swinsian: (Swinsian) Music player
tag: (Tag) Music tag editor
tagger: (Tagger) Music metadata editor supporting batch edits and importing VGMdb data
tdr-vos-slickeq: (tdr-vos-slickeq) Mixing equalizer designed for musical flexibility and impeccable sound
tidal: (TIDAL) Music streaming service with high fidelity sound and hi-def video quality
transcribe: (Transcribe!) Transcribes recorded music
transocks: (Transocks) Tool to optimize access to various video music resources
tuneinstructor: (Tune•Instructor) Menu bar control for Apple Music
vox: (VOX) Music player for high resoluion (Hi-Res) music through the external sources
xiami: (Xiami, 虾米音乐) Music content management and distribution
yandex-music-unofficial: (Yandex Music Unofficial) Unofficial app for Yandex Music
yesplaymusic: (YesPlayMusic) Third-party NetEase cloud player
yousician: (Yousician) Musical instrument learning tool
youtube-to-mp3: (MediaHuman YouTube to MP3 Converter) Downloads music from playlists or channels
yt-music: (YouTube Music) App wrapper for music.youtube.com
ytmdesktop-youtube-music: (YouTube Music Desktop App) YouTube music client
zenbeats: (Zenbeats) Music creation app
~ $ brew desc --eval-all --search --cask music
==> Casks
5kplayer: (5KPlayer) Play 4K/1080p/360° video, MP3 AAC APE FLAC music without quality loss
a-better-finder-rename: (A Better Finder Rename) Renamer for files, music and photos
ableton-live-intro: (Ableton Live Intro) Sound and music editor
ableton-live-lite: (Ableton Live Lite) Sound and music editor
ableton-live-standard: (Ableton Live Standard) Sound and music editor
ableton-live-suite: (Ableton Live Suite) Sound and music editor
amazon-music: (Amazon Music) Desktop client for Amazon Music
astrofox: (Astrofox) Motion graphics program for music visualisations
audius: (Audius) Music streaming and sharing platform
awa: (AWA) Music streaming service
background-music: (Background Music) Audio utility
bowtie: (Bowtie) Control your music with customizable shortcuts
cider: (Cider) Open source and community oriented Apple Music client
clementine: (Clementine) Music player and library organizer
coverload: (CoverLoad) Download high quality artwork for movies, music albums, and more
deezer: (Deezer) Music player
denemo: (Denemo) Music notation program
engine-prime: (Engine Prime) Music Management Software for Denon's Engine OS Hardware
exfalso: (Ex Falso) Music tag editor
filebot: (FileBot) Tool for organizing and renaming movies, TV shows, anime or music
focusatwill: (Focus@Will) Personalized focus music
freeyourmusic: (FreeYourMusic) Move playlists, tracks, and albums between music platforms
guitar-pro: (Guitar Pro) Sheet music editor software for guitar, bass, keyboards, drums and more
harmony: (Harmony) Music player
headset: (Headset) Music player powered by YouTube and Reddit
icons8: (Icons8 App) App for browsing icon, photo and music packages
idagio: (IDAGIO) Classical music streaming app
ieasemusic: (ieaseMusic) Third-party NetEase cloud music player
isyncer: (iSyncer) Apple Music playlist exporting tool
itunes-volume-control: (iTunes Volume Control) Control the volume of Apple Music and Spotify using keyboard volume keys
jamulus: (Jamulus) Play music online with friends
jqbx: (JQBX) Listen to Spotify music in sync with others
keyfinder: (KeyFinder) Music key detection tool
kkbox: (KKBOX) Music streaming service
kmbmpdc: (kmbmpdc, kawaii menu bar music player daemon controller) [no description]
kugoumusic: (Kugou Music) Digital music service
lastfm: (Last.fm Scrobbler) Music services manager
lidarr: (Lidarr) Looks and smells like Sonarr but made for music
lmms: (LMMS) Music production software
lx-music: (LX Music Assistant Desktop Edition, 洛雪音乐助手桌面版) Music app base on Electron & Vue
marshallofsound-google-play-music-player: (Google Play Music Desktop Player) [no description]
meta: (Meta) Tag editor for digital music
milkytracker: (MilkyTracker) Music tracker compatible with FT2
mixed-in-key: (Mixed In Key) Harmonic mixing for DJs and music producers
moradownloader: (Mora Downloader) Online music and video store for the Japanese market
museeks: (Museeks) Music player
musescore: (MuseScore) Open-source music notation software
music-bar: (Music Bar) Control Apple Music right from your menu bar
music-manager: (Google Play Music Manager) [no description]
musicbrainz-picard: (MusicBrainz Picard) Music tagger
musictube: (Musictube) Streaming music player
neteasemusic: (NetEase cloud music, 网易云音乐) Music streaming platform
notunes: (noTunes) Simple application that will prevent iTunes or Apple Music from launching
nuclear: (Nuclear) Streaming music player
nulloy: (Nulloy) Music player
pd-l2ork: (Pd-l2ork, Purr Data) Programming environment for computer music and multimedia applications
plexamp: (Plexamp) Music player focusing on visuals
plug: (Plug) Music player for The Hype Machine
polyphone: (Polyphone) Soundfont editor for quickly designing musical instruments
pretzel: (Pretzel) DMCA-safe music for creators
qobuz: (Qobuz) Catalogue of hi-res music for streaming and download
qqmusic: (QQ音乐) Chinese music streaming application
quodlibet: (Quod Libet) Music player and music library manager
radiant-player: (Radiant Player) App wrapper for Google Play Music
rekordbox: (rekordbox) Free Dj app to prepare and manage your music files
rockboxutility: (Rockbox Utility) Automated installer for the Rockbox digital music player firmware
roon: (Roon) Music player
roonbridge: (Roon Bridge) Music player network extender
schism-tracker: (Schism Tracker) Oldschool sample-based music composition tool
sonic-pi: (Sonic Pi) Code-based music creation and performance tool
sonic-visualiser: (Sonic Visualiser) Visualisation, analysis, and annotation of music audio recordings
sonixd: (Sonixd) Desktop client for Subsonic-API and Jellyfin music servers
splice: (Splice) Cloud-based music creation and collaboration platform
spotify: (Spotify) Music streaming service
strawberry: (Strawberry) Music player and music collection organizer
swinsian: (Swinsian) Music player
tag: (Tag) Music tag editor
tagger: (Tagger) Music metadata editor supporting batch edits and importing VGMdb data
tdr-vos-slickeq: (tdr-vos-slickeq) Mixing equalizer designed for musical flexibility and impeccable sound
tidal: (TIDAL) Music streaming service with high fidelity sound and hi-def video quality
transcribe: (Transcribe!) Transcribes recorded music
transocks: (Transocks) Tool to optimize access to various video music resources
tuneinstructor: (Tune•Instructor) Menu bar control for Apple Music
vox: (VOX) Music player for high resoluion (Hi-Res) music through the external sources
xiami: (Xiami, 虾米音乐) Music content management and distribution
yandex-music-unofficial: (Yandex Music Unofficial) Unofficial app for Yandex Music
yesplaymusic: (YesPlayMusic) Third-party NetEase cloud player
yousician: (Yousician) Musical instrument learning tool
youtube-to-mp3: (MediaHuman YouTube to MP3 Converter) Downloads music from playlists or channels
yt-music: (YouTube Music) App wrapper for music.youtube.com
ytmdesktop-youtube-music: (YouTube Music Desktop App) YouTube music client
zenbeats: (Zenbeats) Music creation app
~ $ brew desc --eval-all --search --formula music
==> Formulae
abcm2ps: ABC music notation software
abcmidi: Converts abc music notation files to MIDI files
alda: Music programming language for musicians
chordii: Text file to music sheet converter
clamz: Download MP3 files from Amazon's music store
cmus: Music player with an ncurses based interface
cmusfm: Last.fm standalone scrobbler for the cmus music player
csound: Sound and music computing system
flactag: Tag single album FLAC files with MusicBrainz CUE sheets
game-music-emu: Videogame music file emulator collection
glyr: Music related metadata search engine with command-line interface and C API
libdiscid: C library for creating MusicBrainz and freedb disc IDs
libmusicbrainz: MusicBrainz Client Library
libopenmpt: Software library to decode tracked music files
libxmp: C library for playback of module music (MOD, S3M, IT, etc)
lilypond: Music engraving program
mdxmini: Plays music in X68000 MDX chiptune format
mikmod: Portable tracked music player
moc: Terminal-based music player
mpc: Command-line music player client for mpd
mpd: Music Player Daemon
ncmpc: Curses Music Player Daemon (MPD) client
ncmpcpp: Ncurses-based client for the Music Player Daemon
pmdmini: Plays music in PC-88/98 PMD chiptune format
pms: Practical Music Search, an ncurses-based MPD client
projectm: Milkdrop-compatible music visualizer
sc68: Play music originally designed for Atari ST and Amiga computers
takt: Text-based music programming language
xmp: Command-line player for module music formats (MOD, S3M, IT, etc)
~ $ brew desc --eval-all --name  music
==> Formulae
game-music-emu: Videogame music file emulator collection
libmusicbrainz: MusicBrainz Client Library

==> Casks
amazon-music: (Amazon Music) Desktop client for Amazon Music
background-music: (Background Music) Audio utility
freeyourmusic: (FreeYourMusic) Move playlists, tracks, and albums between music platforms
ieasemusic: (ieaseMusic) Third-party NetEase cloud music player
kugoumusic: (Kugou Music) Digital music service
lx-music: (LX Music Assistant Desktop Edition, 洛雪音乐助手桌面版) Music app base on Electron & Vue
marshallofsound-google-play-music-player: (Google Play Music Desktop Player) [no description]
music-bar: (Music Bar) Control Apple Music right from your menu bar
music-manager: (Google Play Music Manager) [no description]
musicbrainz-picard: (MusicBrainz Picard) Music tagger
musictube: (Musictube) Streaming music player
neteasemusic: (NetEase cloud music, 网易云音乐) Music streaming platform
qqmusic: (QQ音乐) Chinese music streaming application
yandex-music-unofficial: (Yandex Music Unofficial) Unofficial app for Yandex Music
yesplaymusic: (YesPlayMusic) Third-party NetEase cloud player
yt-music: (YouTube Music) App wrapper for music.youtube.com
ytmdesktop-youtube-music: (YouTube Music Desktop App) YouTube music client
~ $ brew desc --eval-all --name --formula music
==> Formulae
game-music-emu: Videogame music file emulator collection
libmusicbrainz: MusicBrainz Client Library
~ $ brew desc --eval-all --name --cask music
==> Casks
amazon-music: (Amazon Music) Desktop client for Amazon Music
background-music: (Background Music) Audio utility
freeyourmusic: (FreeYourMusic) Move playlists, tracks, and albums between music platforms
ieasemusic: (ieaseMusic) Third-party NetEase cloud music player
kugoumusic: (Kugou Music) Digital music service
lx-music: (LX Music Assistant Desktop Edition, 洛雪音乐助手桌面版) Music app base on Electron & Vue
marshallofsound-google-play-music-player: (Google Play Music Desktop Player) [no description]
music-bar: (Music Bar) Control Apple Music right from your menu bar
music-manager: (Google Play Music Manager) [no description]
musicbrainz-picard: (MusicBrainz Picard) Music tagger
musictube: (Musictube) Streaming music player
neteasemusic: (NetEase cloud music, 网易云音乐) Music streaming platform
qqmusic: (QQ音乐) Chinese music streaming application
yandex-music-unofficial: (Yandex Music Unofficial) Unofficial app for Yandex Music
yesplaymusic: (YesPlayMusic) Third-party NetEase cloud player
yt-music: (YouTube Music) App wrapper for music.youtube.com
ytmdesktop-youtube-music: (YouTube Music Desktop App) YouTube music client
~ $ brew desc --eval-all --description  music
==> Formulae
abcm2ps: ABC music notation software
abcmidi: Converts abc music notation files to MIDI files
alda: Music programming language for musicians
chordii: Text file to music sheet converter
clamz: Download MP3 files from Amazon's music store
cmus: Music player with an ncurses based interface
cmusfm: Last.fm standalone scrobbler for the cmus music player
csound: Sound and music computing system
flactag: Tag single album FLAC files with MusicBrainz CUE sheets
game-music-emu: Videogame music file emulator collection
glyr: Music related metadata search engine with command-line interface and C API
libdiscid: C library for creating MusicBrainz and freedb disc IDs
libmusicbrainz: MusicBrainz Client Library
libopenmpt: Software library to decode tracked music files
libxmp: C library for playback of module music (MOD, S3M, IT, etc)
lilypond: Music engraving program
mdxmini: Plays music in X68000 MDX chiptune format
mikmod: Portable tracked music player
moc: Terminal-based music player
mpc: Command-line music player client for mpd
mpd: Music Player Daemon
ncmpc: Curses Music Player Daemon (MPD) client
ncmpcpp: Ncurses-based client for the Music Player Daemon
pmdmini: Plays music in PC-88/98 PMD chiptune format
pms: Practical Music Search, an ncurses-based MPD client
projectm: Milkdrop-compatible music visualizer
sc68: Play music originally designed for Atari ST and Amiga computers
takt: Text-based music programming language
xmp: Command-line player for module music formats (MOD, S3M, IT, etc)

==> Casks
5kplayer: (5KPlayer) Play 4K/1080p/360° video, MP3 AAC APE FLAC music without quality loss
a-better-finder-rename: (A Better Finder Rename) Renamer for files, music and photos
ableton-live-intro: (Ableton Live Intro) Sound and music editor
ableton-live-lite: (Ableton Live Lite) Sound and music editor
ableton-live-standard: (Ableton Live Standard) Sound and music editor
ableton-live-suite: (Ableton Live Suite) Sound and music editor
amazon-music: (Amazon Music) Desktop client for Amazon Music
astrofox: (Astrofox) Motion graphics program for music visualisations
audius: (Audius) Music streaming and sharing platform
awa: (AWA) Music streaming service
background-music: (Background Music) Audio utility
bowtie: (Bowtie) Control your music with customizable shortcuts
cider: (Cider) Open source and community oriented Apple Music client
clementine: (Clementine) Music player and library organizer
coverload: (CoverLoad) Download high quality artwork for movies, music albums, and more
deezer: (Deezer) Music player
denemo: (Denemo) Music notation program
engine-prime: (Engine Prime) Music Management Software for Denon's Engine OS Hardware
exfalso: (Ex Falso) Music tag editor
filebot: (FileBot) Tool for organizing and renaming movies, TV shows, anime or music
focusatwill: (Focus@Will) Personalized focus music
freeyourmusic: (FreeYourMusic) Move playlists, tracks, and albums between music platforms
guitar-pro: (Guitar Pro) Sheet music editor software for guitar, bass, keyboards, drums and more
harmony: (Harmony) Music player
headset: (Headset) Music player powered by YouTube and Reddit
icons8: (Icons8 App) App for browsing icon, photo and music packages
idagio: (IDAGIO) Classical music streaming app
ieasemusic: (ieaseMusic) Third-party NetEase cloud music player
isyncer: (iSyncer) Apple Music playlist exporting tool
itunes-volume-control: (iTunes Volume Control) Control the volume of Apple Music and Spotify using keyboard volume keys
jamulus: (Jamulus) Play music online with friends
jqbx: (JQBX) Listen to Spotify music in sync with others
keyfinder: (KeyFinder) Music key detection tool
kkbox: (KKBOX) Music streaming service
kmbmpdc: (kmbmpdc, kawaii menu bar music player daemon controller) [no description]
kugoumusic: (Kugou Music) Digital music service
lastfm: (Last.fm Scrobbler) Music services manager
lidarr: (Lidarr) Looks and smells like Sonarr but made for music
lmms: (LMMS) Music production software
lx-music: (LX Music Assistant Desktop Edition, 洛雪音乐助手桌面版) Music app base on Electron & Vue
marshallofsound-google-play-music-player: (Google Play Music Desktop Player) [no description]
meta: (Meta) Tag editor for digital music
milkytracker: (MilkyTracker) Music tracker compatible with FT2
mixed-in-key: (Mixed In Key) Harmonic mixing for DJs and music producers
moradownloader: (Mora Downloader) Online music and video store for the Japanese market
museeks: (Museeks) Music player
musescore: (MuseScore) Open-source music notation software
music-bar: (Music Bar) Control Apple Music right from your menu bar
music-manager: (Google Play Music Manager) [no description]
musicbrainz-picard: (MusicBrainz Picard) Music tagger
musictube: (Musictube) Streaming music player
neteasemusic: (NetEase cloud music, 网易云音乐) Music streaming platform
notunes: (noTunes) Simple application that will prevent iTunes or Apple Music from launching
nuclear: (Nuclear) Streaming music player
nulloy: (Nulloy) Music player
pd-l2ork: (Pd-l2ork, Purr Data) Programming environment for computer music and multimedia applications
plexamp: (Plexamp) Music player focusing on visuals
plug: (Plug) Music player for The Hype Machine
polyphone: (Polyphone) Soundfont editor for quickly designing musical instruments
pretzel: (Pretzel) DMCA-safe music for creators
qobuz: (Qobuz) Catalogue of hi-res music for streaming and download
qqmusic: (QQ音乐) Chinese music streaming application
quodlibet: (Quod Libet) Music player and music library manager
radiant-player: (Radiant Player) App wrapper for Google Play Music
rekordbox: (rekordbox) Free Dj app to prepare and manage your music files
rockboxutility: (Rockbox Utility) Automated installer for the Rockbox digital music player firmware
roon: (Roon) Music player
roonbridge: (Roon Bridge) Music player network extender
schism-tracker: (Schism Tracker) Oldschool sample-based music composition tool
sonic-pi: (Sonic Pi) Code-based music creation and performance tool
sonic-visualiser: (Sonic Visualiser) Visualisation, analysis, and annotation of music audio recordings
sonixd: (Sonixd) Desktop client for Subsonic-API and Jellyfin music servers
splice: (Splice) Cloud-based music creation and collaboration platform
spotify: (Spotify) Music streaming service
strawberry: (Strawberry) Music player and music collection organizer
swinsian: (Swinsian) Music player
tag: (Tag) Music tag editor
tagger: (Tagger) Music metadata editor supporting batch edits and importing VGMdb data
tdr-vos-slickeq: (tdr-vos-slickeq) Mixing equalizer designed for musical flexibility and impeccable sound
tidal: (TIDAL) Music streaming service with high fidelity sound and hi-def video quality
transcribe: (Transcribe!) Transcribes recorded music
transocks: (Transocks) Tool to optimize access to various video music resources
tuneinstructor: (Tune•Instructor) Menu bar control for Apple Music
vox: (VOX) Music player for high resoluion (Hi-Res) music through the external sources
xiami: (Xiami, 虾米音乐) Music content management and distribution
yandex-music-unofficial: (Yandex Music Unofficial) Unofficial app for Yandex Music
yesplaymusic: (YesPlayMusic) Third-party NetEase cloud player
yousician: (Yousician) Musical instrument learning tool
youtube-to-mp3: (MediaHuman YouTube to MP3 Converter) Downloads music from playlists or channels
yt-music: (YouTube Music) App wrapper for music.youtube.com
ytmdesktop-youtube-music: (YouTube Music Desktop App) YouTube music client
zenbeats: (Zenbeats) Music creation app
~ $ brew desc --eval-all --description --cask music
==> Casks
5kplayer: (5KPlayer) Play 4K/1080p/360° video, MP3 AAC APE FLAC music without quality loss
a-better-finder-rename: (A Better Finder Rename) Renamer for files, music and photos
ableton-live-intro: (Ableton Live Intro) Sound and music editor
ableton-live-lite: (Ableton Live Lite) Sound and music editor
ableton-live-standard: (Ableton Live Standard) Sound and music editor
ableton-live-suite: (Ableton Live Suite) Sound and music editor
amazon-music: (Amazon Music) Desktop client for Amazon Music
astrofox: (Astrofox) Motion graphics program for music visualisations
audius: (Audius) Music streaming and sharing platform
awa: (AWA) Music streaming service
background-music: (Background Music) Audio utility
bowtie: (Bowtie) Control your music with customizable shortcuts
cider: (Cider) Open source and community oriented Apple Music client
clementine: (Clementine) Music player and library organizer
coverload: (CoverLoad) Download high quality artwork for movies, music albums, and more
deezer: (Deezer) Music player
denemo: (Denemo) Music notation program
engine-prime: (Engine Prime) Music Management Software for Denon's Engine OS Hardware
exfalso: (Ex Falso) Music tag editor
filebot: (FileBot) Tool for organizing and renaming movies, TV shows, anime or music
focusatwill: (Focus@Will) Personalized focus music
freeyourmusic: (FreeYourMusic) Move playlists, tracks, and albums between music platforms
guitar-pro: (Guitar Pro) Sheet music editor software for guitar, bass, keyboards, drums and more
harmony: (Harmony) Music player
headset: (Headset) Music player powered by YouTube and Reddit
icons8: (Icons8 App) App for browsing icon, photo and music packages
idagio: (IDAGIO) Classical music streaming app
ieasemusic: (ieaseMusic) Third-party NetEase cloud music player
isyncer: (iSyncer) Apple Music playlist exporting tool
itunes-volume-control: (iTunes Volume Control) Control the volume of Apple Music and Spotify using keyboard volume keys
jamulus: (Jamulus) Play music online with friends
jqbx: (JQBX) Listen to Spotify music in sync with others
keyfinder: (KeyFinder) Music key detection tool
kkbox: (KKBOX) Music streaming service
kmbmpdc: (kmbmpdc, kawaii menu bar music player daemon controller) [no description]
kugoumusic: (Kugou Music) Digital music service
lastfm: (Last.fm Scrobbler) Music services manager
lidarr: (Lidarr) Looks and smells like Sonarr but made for music
lmms: (LMMS) Music production software
lx-music: (LX Music Assistant Desktop Edition, 洛雪音乐助手桌面版) Music app base on Electron & Vue
marshallofsound-google-play-music-player: (Google Play Music Desktop Player) [no description]
meta: (Meta) Tag editor for digital music
milkytracker: (MilkyTracker) Music tracker compatible with FT2
mixed-in-key: (Mixed In Key) Harmonic mixing for DJs and music producers
moradownloader: (Mora Downloader) Online music and video store for the Japanese market
museeks: (Museeks) Music player
musescore: (MuseScore) Open-source music notation software
music-bar: (Music Bar) Control Apple Music right from your menu bar
music-manager: (Google Play Music Manager) [no description]
musicbrainz-picard: (MusicBrainz Picard) Music tagger
musictube: (Musictube) Streaming music player
neteasemusic: (NetEase cloud music, 网易云音乐) Music streaming platform
notunes: (noTunes) Simple application that will prevent iTunes or Apple Music from launching
nuclear: (Nuclear) Streaming music player
nulloy: (Nulloy) Music player
pd-l2ork: (Pd-l2ork, Purr Data) Programming environment for computer music and multimedia applications
plexamp: (Plexamp) Music player focusing on visuals
plug: (Plug) Music player for The Hype Machine
polyphone: (Polyphone) Soundfont editor for quickly designing musical instruments
pretzel: (Pretzel) DMCA-safe music for creators
qobuz: (Qobuz) Catalogue of hi-res music for streaming and download
qqmusic: (QQ音乐) Chinese music streaming application
quodlibet: (Quod Libet) Music player and music library manager
radiant-player: (Radiant Player) App wrapper for Google Play Music
rekordbox: (rekordbox) Free Dj app to prepare and manage your music files
rockboxutility: (Rockbox Utility) Automated installer for the Rockbox digital music player firmware
roon: (Roon) Music player
roonbridge: (Roon Bridge) Music player network extender
schism-tracker: (Schism Tracker) Oldschool sample-based music composition tool
sonic-pi: (Sonic Pi) Code-based music creation and performance tool
sonic-visualiser: (Sonic Visualiser) Visualisation, analysis, and annotation of music audio recordings
sonixd: (Sonixd) Desktop client for Subsonic-API and Jellyfin music servers
splice: (Splice) Cloud-based music creation and collaboration platform
spotify: (Spotify) Music streaming service
strawberry: (Strawberry) Music player and music collection organizer
swinsian: (Swinsian) Music player
tag: (Tag) Music tag editor
tagger: (Tagger) Music metadata editor supporting batch edits and importing VGMdb data
tdr-vos-slickeq: (tdr-vos-slickeq) Mixing equalizer designed for musical flexibility and impeccable sound
tidal: (TIDAL) Music streaming service with high fidelity sound and hi-def video quality
transcribe: (Transcribe!) Transcribes recorded music
transocks: (Transocks) Tool to optimize access to various video music resources
tuneinstructor: (Tune•Instructor) Menu bar control for Apple Music
vox: (VOX) Music player for high resoluion (Hi-Res) music through the external sources
xiami: (Xiami, 虾米音乐) Music content management and distribution
yandex-music-unofficial: (Yandex Music Unofficial) Unofficial app for Yandex Music
yesplaymusic: (YesPlayMusic) Third-party NetEase cloud player
yousician: (Yousician) Musical instrument learning tool
youtube-to-mp3: (MediaHuman YouTube to MP3 Converter) Downloads music from playlists or channels
yt-music: (YouTube Music) App wrapper for music.youtube.com
ytmdesktop-youtube-music: (YouTube Music Desktop App) YouTube music client
zenbeats: (Zenbeats) Music creation app
~ $ brew desc --eval-all --description --formula music
==> Formulae
abcm2ps: ABC music notation software
abcmidi: Converts abc music notation files to MIDI files
alda: Music programming language for musicians
chordii: Text file to music sheet converter
clamz: Download MP3 files from Amazon's music store
cmus: Music player with an ncurses based interface
cmusfm: Last.fm standalone scrobbler for the cmus music player
csound: Sound and music computing system
flactag: Tag single album FLAC files with MusicBrainz CUE sheets
game-music-emu: Videogame music file emulator collection
glyr: Music related metadata search engine with command-line interface and C API
libdiscid: C library for creating MusicBrainz and freedb disc IDs
libmusicbrainz: MusicBrainz Client Library
libopenmpt: Software library to decode tracked music files
libxmp: C library for playback of module music (MOD, S3M, IT, etc)
lilypond: Music engraving program
mdxmini: Plays music in X68000 MDX chiptune format
mikmod: Portable tracked music player
moc: Terminal-based music player
mpc: Command-line music player client for mpd
mpd: Music Player Daemon
ncmpc: Curses Music Player Daemon (MPD) client
ncmpcpp: Ncurses-based client for the Music Player Daemon
pmdmini: Plays music in PC-88/98 PMD chiptune format
pms: Practical Music Search, an ncurses-based MPD client
projectm: Milkdrop-compatible music visualizer
sc68: Play music originally designed for Atari ST and Amiga computers
takt: Text-based music programming language
xmp: Command-line player for module music formats (MOD, S3M, IT, etc)
~ $ 

This doesn't need to be isolated anymore because
there is a check for the formula and cask args
and formula is passed by default on Linux now.
- Move cask logic back into method from extend/os and check
  whether to display it based on args since formula?
  is passed by default on Linux now
- Use #search_descriptions in `brew desc` instead of
  duplicating logic
- Remove need for extend/os/search
- Instead use class methods.
- This is better than use it as a mixin
  when only a small number of methods are
  used in each class or module.
- It also allows us to conditionally
  require it in `brew install`.
- Removed unused search require in descriptions.rb.
@BrewTestBot
Copy link
Member

Review period will end on 2022-12-20 at 00:00:00 UTC.

@BrewTestBot BrewTestBot added the waiting for feedback Merging is blocked until sufficient time has passed for review label Dec 17, 2022
@@ -3,15 +3,12 @@

require "formula"
require "formula_versions"
require "search"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This didn't seem to be getting used at all in here.

@apainintheneck
Copy link
Contributor Author

Now I'm wondering if a module_function would be better in search.rb since we seem to use that more with modules instead of just creating class methods (ex. def self.method; end) like I did here.

Copy link
Member

@MikeMcQuaid MikeMcQuaid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice cleanup!

@MikeMcQuaid
Copy link
Member

Now I'm wondering if a module_function would be better in search.rb since we seem to use that more with modules instead of just creating class methods (ex. def self.method; end) like I did here.

Yeh: if we're using self every time: feels like it makes sense 👍🏻

@BrewTestBot BrewTestBot removed the waiting for feedback Merging is blocked until sufficient time has passed for review label Dec 20, 2022
@BrewTestBot
Copy link
Member

Review period ended.

@apainintheneck apainintheneck merged commit 740f9dd into Homebrew:master Dec 21, 2022
@apainintheneck apainintheneck deleted the cleanup-search-module branch January 3, 2023 00:30
@github-actions github-actions bot added the outdated PR was locked due to age label Feb 3, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
outdated PR was locked due to age
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants