nu-modules/br.nu

50 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 main" | 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"
| default "" "desc"
| into sqlite --table-name "formula" (settings-db)
}
export def search [pattern:string,--exact] {
let settings = (read-settings)
if $exact {
$settings | query db $"SELECT * FROM main WHERE name = '($pattern)'"
} else {
$settings | query db $"SELECT * FROM main 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
}