Get locally homebrew casks, packages and formulas as nicely types tables
Maintainer(s):
adriens
Installing and Loading
INSTALL brew FROM community;
LOAD brew;
Example
-- Get all casks
select * from brew_casks();
-- Get all packages
select * from brew_packages();
-- get all formulas
select * from brew_formulas();
-- Find outdated packages
SELECT name, version FROM brew_packages() WHERE outdated = true;
-- Create brew_packages table with constraints
CREATE OR REPLACE TEMP TABLE brew_packages (
tap VARCHAR,
name VARCHAR PRIMARY KEY,
version VARCHAR,
type VARCHAR,
description VARCHAR,
homepage VARCHAR,
license VARCHAR,
installed_on_request BOOLEAN,
installed_as_dependency BOOLEAN,
installed_time TIMESTAMP,
outdated BOOLEAN,
pinned BOOLEAN,
deprecated BOOLEAN,
disabled BOOLEAN,
poured_from_bottle BOOLEAN,
built_as_bottle BOOLEAN,
dependencies VARCHAR,
aliases VARCHAR,
deprecation_reason VARCHAR,
disable_reason VARCHAR,
caveats VARCHAR,
size_bytes BIGINT
);
-- Populate from the function
INSERT INTO brew_packages
SELECT * FROM brew_packages();
-- Create brew_dependencies table with foreign key constraints
CREATE OR REPLACE TEMP TABLE brew_dependencies (
name VARCHAR,
dependency VARCHAR,
FOREIGN KEY (name) REFERENCES brew_packages(name),
FOREIGN KEY (dependency) REFERENCES brew_packages(name)
);
-- Populate from brew_packages function
INSERT INTO brew_dependencies
SELECT
name,
unnest(string_split(dependencies, ', ')) as dependency
FROM brew_packages()
WHERE dependencies IS NOT NULL
ORDER BY name;
SELECT
tap,
count(*) as package_count
FROM brew_packages
GROUP BY tap
ORDER BY package_count DESC;
Added Functions
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| brew_casks | table | NULL | NULL | |
| brew_formulas | table | NULL | NULL | |
| brew_packages | table | NULL | NULL |