22 |
# to Tobias Gruetzmacher who reported this bug) |
# to Tobias Gruetzmacher who reported this bug) |
23 |
# 2003-09-04 moved do_sudo before first call (fixes bug when trying to |
# 2003-09-04 moved do_sudo before first call (fixes bug when trying to |
24 |
# install iselect) |
# install iselect) |
25 |
# 2003-10-09 allow multi-selection of packages to view and install |
# 2003-10-09 allow multi-selection of packages to view details |
26 |
# 2003-11-13 fix for RedHat 9.0 mktemp bug suggested by Dobes Vandermeer |
# 2003-11-13 fix for RedHat 9.0 mktemp bug suggested by Dobes Vandermeer |
27 |
|
# 2004-07-27 allow multi-selection of packages to install |
28 |
|
# 2004-12-04 add quick install options |
29 |
|
# 2004-12-06 fixed multi-word search |
30 |
# |
# |
31 |
# I know it's ugly, but it's still faster than aptitude :-) |
# I know it's ugly, but it's still faster than aptitude :-) |
32 |
# |
# |
73 |
rmtemp() { |
rmtemp() { |
74 |
rm -f $res |
rm -f $res |
75 |
rm -f $res2 |
rm -f $res2 |
76 |
|
test -f $sel && rm -f $sel |
77 |
rm -f $pkg |
rm -f $pkg |
78 |
} |
} |
79 |
|
|
83 |
trap 'rmtemp; exit 1' INT QUIT TERM SEGV |
trap 'rmtemp; exit 1' INT QUIT TERM SEGV |
84 |
|
|
85 |
apt_cache_search() { |
apt_cache_search() { |
86 |
search_words="$@" |
search_words="$*" |
87 |
|
|
88 |
echo "Searching apt-cache for \"$search_words\"..." |
echo "Searching apt-cache for \"$search_words\"..." |
89 |
|
|
90 |
apt-cache search "$search_words" | head -1020 > $res |
apt-cache search "$@" | head -1020 > $res |
91 |
nr=`wc -l $res | sed 's/^ *//' | cut -d" " -f1` |
nr=`wc -l $res | sed 's/^ *//' | cut -d" " -f1` |
92 |
if [ $nr = 0 ] ; then |
if [ $nr = 0 ] ; then |
93 |
echo "No results for \"$search_words\"" > $res2 |
echo "No results for \"$search_words\"" > $res2 |
94 |
nr="no" |
nr=0 |
95 |
else |
else |
96 |
echo "$nr results for \"$search_words\", enter new search {s:search=%[Search for]S}" > $res2 |
echo "$nr results for \"$search_words\", enter new search {s:search=%[Search for]S}" > $res2 |
97 |
echo >> $res2 |
echo >> $res2 |
98 |
cat $res | sed 's/^/{s}/' >> $res2 |
cat $res | sed 's/^/{s}/' >> $res2 |
99 |
|
echo >> $res2 |
100 |
|
echo "{s:_quick_install_}Install all selected" >> $res2 |
101 |
fi |
fi |
102 |
echo >> $res2 |
echo >> $res2 |
103 |
echo "Enter new apt-cache search {s:search=%[Search for]S}" >> $res2 |
echo "Enter new apt-cache search {s:search=%[Search for]S}" >> $res2 |
118 |
elif tmp=`grep search= <$sel 2>/dev/null` ; then |
elif tmp=`grep search= <$sel 2>/dev/null` ; then |
119 |
apt_cache_search `echo $tmp | grep search= | cut -d= -f2` |
apt_cache_search `echo $tmp | grep search= | cut -d= -f2` |
120 |
loop=1 |
loop=1 |
121 |
|
elif tmp=`grep -i ':_quick_install_' $sel` ; then |
122 |
|
debs=`grep -v ':_quick_install_' $sel | cut -d: -f2 | cut -d" " -f1 | xargs echo` |
123 |
|
do_sudo "Installing '$debs'" apt-get install $debs |
124 |
else |
else |
125 |
# not search, find packages info |
# not search, find packages info |
126 |
|
|
140 |
done |
done |
141 |
echo '{s}Back to search results' >> $pkg |
echo '{s}Back to search results' >> $pkg |
142 |
|
|
143 |
tmp=`iselect -d '{,}' -n "Packages: $pkg_list" < $pkg` |
tmp=`iselect -d '{,}' -n "Packages: $pkg_list" -m < $pkg` |
144 |
if echo $tmp | grep -i back >/dev/null ; then |
if echo $tmp | grep -i back >/dev/null ; then |
145 |
loop=1 |
loop=1 |
146 |
elif echo $tmp | grep '^Package: ' >/dev/null ; then |
elif echo $tmp | grep '^Package: ' >/dev/null ; then |
147 |
deb=`echo $tmp | sed 's,{b/*},,g' | cut -d: -f2 | sed 's/^ *//'` |
deb=`echo $tmp | sed -e 's,{b/*},,g' -e 's,Package: *,,g'` |
148 |
do_sudo "Installing '$deb'" apt-get install $deb |
do_sudo "Installing '$deb'" apt-get install $deb |
149 |
elif [ -z "$tmp" ] ; then |
elif [ -z "$tmp" ] ; then |
150 |
loop=1 |
loop=1 |