45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
def settings-db [] {
|
|
$env.HOME | path join ".br.db"
|
|
}
|
|
|
|
def read-settings [] {
|
|
open (settings-db)
|
|
}
|
|
|
|
def comp-name [] {
|
|
read-settings | query db "SELECT * FROM formula" | select name desc | rename value description
|
|
}
|
|
|
|
# update the info about the formulars
|
|
export def update-cache [] {
|
|
let formulars = (http get https://formulae.brew.sh/api/formula.json)
|
|
let casks = (http get https://formulae.brew.sh/api/cask.json)
|
|
rm -f (settings-db)
|
|
$formulars | select name full_name desc | insert type "formula" | into sqlite --table_name "formula" (settings-db)
|
|
$casks | select token full_token desc | rename name full_name desc | insert type "cask" | into sqlite --table_name "formula" (settings-db)
|
|
}
|
|
|
|
export def search [pattern:string,--exact] {
|
|
let settings = (read-settings)
|
|
if $exact {
|
|
$settings | query db $"SELECT * FROM formula WHERE name = '($pattern)'"
|
|
} else {
|
|
$settings | query db $"SELECT * FROM formula WHERE name LIKE '%($pattern)%'"
|
|
}
|
|
}
|
|
|
|
export def install [name:string@comp-name] {
|
|
^brew install $name
|
|
}
|
|
|
|
# list all installed apps
|
|
export def "list installed" [] {
|
|
["Caskroom", "Cellar"] | each { |x|
|
|
ls ("/opt/homebrew" | path join $x) | get name | each {|x| $x | path basename}
|
|
} | flatten
|
|
}
|
|
|
|
export def up [] {
|
|
^brew update
|
|
^brew upgrade
|
|
} |