Never print "No packages found" with apt-cyg list

This commit is contained in:
Steven Penny 2014-10-26 20:30:30 -05:00
parent c7f61ef0e8
commit 7bee9222bc
1 changed files with 35 additions and 33 deletions

68
apt-cyg
View File

@ -119,7 +119,7 @@ function get-setup {
}
function check-packages {
if [[ $packages ]]
if [[ $pks ]]
then
return 0
else
@ -128,6 +128,10 @@ function check-packages {
fi
}
function warn {
printf '\e[36m%s\e[m\n' "$*" >&2
}
function apt-update {
if find-workspace
then
@ -136,29 +140,27 @@ function apt-update {
}
function apt-list {
if check-packages
then
find-workspace
for pkg in "${packages[@]}"
do
echo
echo Searching for installed packages matching $pkg:
awk 'NR>1 && $1~query && $0=$1' query="$pkg" /etc/setup/installed.db
echo
echo Searching for installable packages matching $pkg:
awk '$1 ~ query && $0 = $1' RS='\n\n@ ' FS='\n' query="$pkg" setup.ini
done
else
echo The following packages are installed: >&2
awk 'NR>1 && $0=$1' /etc/setup/installed.db
fi
find-workspace
local sbq
for pkg in "${pks[@]}"
do
(( sbq++ )) && echo
warn Searching for installed packages matching $pkg:
awk 'NR>1 && $1~query && $0=$1' query="$pkg" /etc/setup/installed.db
echo
warn Searching for installable packages matching $pkg:
awk '$1 ~ query && $0 = $1' RS='\n\n@ ' FS='\n' query="$pkg" setup.ini
done
(( sbq )) && return
warn The following packages are installed:
awk 'NR>1 && $0=$1' /etc/setup/installed.db
}
function apt-listfiles {
check-packages
find-workspace
local pkg sbq
for pkg in "${packages[@]}"
for pkg in "${pks[@]}"
do
(( sbq++ )) && echo
if [ ! -e /etc/setup/"$pkg".lst.gz ]
@ -172,7 +174,7 @@ function apt-listfiles {
function apt-show {
find-workspace
check-packages
for pkg in "${packages[@]}"
for pkg in "${pks[@]}"
do
(( notfirst++ )) && echo
awk '
@ -191,7 +193,7 @@ function apt-show {
function apt-depends {
find-workspace
check-packages
for pkg in "${packages[@]}"
for pkg in "${pks[@]}"
do
(( sq++ )) && echo
awk '
@ -238,7 +240,7 @@ function apt-depends {
function apt-rdepends {
find-workspace
for pkg in "${packages[@]}"
for pkg in "${pks[@]}"
do
awk '
/^@ / {
@ -255,7 +257,7 @@ function apt-download {
check-packages
find-workspace
local pkg sbq
for pkg in "${packages[@]}"
for pkg in "${pks[@]}"
do
(( sbq++ )) && echo
download "$pkg"
@ -308,7 +310,7 @@ function download {
function apt-search {
check-packages
echo Searching downloaded packages...
for pkg in "${packages[@]}"
for pkg in "${pks[@]}"
do
key=$(type -P "$pkg" | sed s./..)
[[ $key ]] || key=$pkg
@ -328,7 +330,7 @@ function apt-search {
function apt-searchall {
cd /tmp
for pkg in "${packages[@]}"
for pkg in "${pks[@]}"
do
printf -v qs 'text=1&arch=%s&grep=%s' $ARCH "$pkg"
wget -O matches cygwin.com/cgi-bin2/package-grep.cgi?"$qs"
@ -347,8 +349,8 @@ function apt-searchall {
function apt-install {
check-packages
find-workspace
local pkg dn bn requires warn package script
for pkg in "${packages[@]}"
local pkg dn bn requires wr package script
for pkg in "${pks[@]}"
do
if grep -q "^$pkg " /etc/setup/installed.db
@ -384,7 +386,7 @@ function apt-install {
requires=$(awk '$1=="requires", $0=$2' FS=': ' desc)
cd ~-
warn=0
wr=0
if [[ $requires ]]
then
echo Package $pkg requires the following packages, installing:
@ -396,10 +398,10 @@ function apt-install {
echo Package $package is already installed, skipping
continue
fi
apt-cyg install --noscripts $package || (( warn++ ))
apt-cyg install --noscripts $package || (( wr++ ))
done
fi
if (( warn ))
if (( wr ))
then
echo 'Warning: some required packages did not install, continuing'
fi
@ -420,7 +422,7 @@ function apt-install {
function apt-remove {
check-packages
for pkg in "${packages[@]}"
for pkg in "${pks[@]}"
do
if ! grep -q "^$pkg " /etc/setup/installed.db
@ -528,7 +530,7 @@ do
if [ -c "$file" -o -f "$file" ]
then
fp=$(sed '' "$file")
mapfile -t packages <<< "$fp"
mapfile -t pks <<< "$fp"
else
echo File $file not found, skipping
fi
@ -556,7 +558,7 @@ do
| searchall)
if [[ $command ]]
then
packages+=("$1")
pks+=("$1")
else
command=$1
fi
@ -564,7 +566,7 @@ do
;;
*)
packages+=("$1")
pks+=("$1")
shift
;;