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 }