1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
#!/bin/bash
# Purpose: Homebrew support
# Author : James Pearson
# License: Fair license (http://www.opensource.org/licenses/fair)
# Source : http://github.com/icy/pacapt/
# Copyright (C) 2010 - 2014 James Pearson
#
# Usage of the works is permitted provided that this instrument is
# retained with the works, so that any entity that uses the works is
# notified of this instrument.
#
# DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
_homebrew_init() {
:
}
homebrew_Qi() {
brew info "$@"
}
homebrew_Ql() {
brew list "$@"
}
homebrew_Qo() {
local pkg prefix cellar
# FIXME: What happens if the file is not exectutable?
cd "$(dirname -- "$(which "$@")")"
pkg="$(pwd -P)/$(basename -- "$@")"
prefix="$(brew --prefix)"
cellar="$(brew --cellar)"
for package in $cellar/*; do
files=(${package}/*/${pkg/#$prefix\//})
if [[ -e "${files[${#files[@]} - 1]}" ]]; then
echo "${package/#$cellar\//}"
break
fi
done
}
homebrew_Qc() {
brew log "$@"
}
homebrew_Qu() {
brew outdated | grep "$@"
}
homebrew_Qs() {
brew list | grep "$@"
}
homebrew_Q() {
if [[ "$_TOPT" == "" ]]; then
if [[ "$@" == "" ]]; then
brew list
else
brew list | grep "$@"
fi
else
_not_implemented
fi
}
# FIXME: make sure "join" does exit
# FIXME: Add quoting support, be cause "join" can fail
homebrew_Rs() {
if [[ "$_TOPT" == "s" ]]; then
brew rm "$@"
brew rm $(join <(brew leaves) <(brew deps "$@"))
else
_not_implemented
fi
}
homebrew_R() {
brew remove "$@"
}
homebrew_Si() {
brew info "$@"
}
homebrew_Suy() {
brew update \
&& brew upgrade --all "$@"
}
homebrew_Su() {
brew upgrade --all "$@"
}
homebrew_Sy() {
brew update "$@"
}
homebrew_Ss() {
brew search "$@"
}
homebrew_Sc() {
brew cleanup "$@"
}
homebrew_Scc() {
brew cleanup -s "$@"
}
homebrew_Sccc() {
# See more discussion in
# https://github.com/icy/pacapt/issues/47
local _dcache
_dcache="$(brew --cache)"
case "$_dcache" in
""|"/"|" ")
_error "$FUNCNAME: Unable to delete '$_dcache'."
;;
*)
# FIXME: This is quite stupid!!! But it's an easy way
# FIXME: to avoid some warning from #shellcheck.
# FIXME: Please note that, $_dcache is not empty now.
rm -rf "${_dcache:-/x/x/x/x/x/x/x/x/x/x/x//x/x/x/x/x/}/"
;;
esac
}
homebrew_S() {
brew install $_TOPT "$@"
}
|