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