[Slapt-get-user] wrap_slapt_get.sh
Dan Barber
slapt-get-user@software.jaos.org
Wed, 5 May 2004 09:37:08 -0400 (EDT)
Hello all,
Here is a script I've been using to manage my servers via disk set. It
has made my life easy and can hopefully do the same for you. Please send
me any comments/updates.
Jason, This script is a bit different than what you've seen. I've added
comments and modified some of the tests.
Dan
---------------- wrap_slapt-get.sh script follows -----------------------
#!/bin/sh
# Dan Barber <danb at mojolin dot com>
#
# Slackware 9.1 Disk Sets
#
#### A : Basic Linux System
#### AP : Applications that don't need X
#### D : Development tools and utilities
#### E : Emacs
#### F : FAQs and HOWTOs
#### GNOME: The GNOME desktop and GTK+
#### KDE : The K Desktop Environment and Qt
#### KDEI : KDE international packages
#### L : Various libraries, including GLIBC
#### N : Network programs, utilities, servers, and clients
#### T : teTeX, LaTeX, and related typesetting software
#### TCL : TCL and Tk
#### X : Base X Window system
#### XAP : X Window system applications and window managers
#### Y : BSD games
# ------- Start User Configurable Section
# Actions on Disk Sets
include_dir="a,ap,d,f,gnome,kde,l,n,tcl,x,xap,y"
remove_dir="e,kdei,t"
ignore_dir="k"
# Uncomment if you are using Todd Kulesza's Dropline Gnome
USE_DROPLINE=true
#
# Uncomment to actually remove the packages in the $remove_dir from your
system
DO_REMOVE=true
# ------- End User Configurable Section
# ------- Start Main Program
## Check for slapt-get
if [ -z "`which slapt-get`" ]; then
echo "slapt-get not found in PATH"
exit 1
fi
## Update Transaction Engine
echo ""
echo -e "Updating the slapt-get transaction engine."
echo ""
slapt-get --update
echo ""
echo "Creating temp list of currently installed dropline packages."
echo ""
## If using Dropline Gnome, update it's package list
if [ $USE_DROPLINE ]; then
if [ -e /tmp/dropline_package_list.txt ]; then
rm -rf /tmp/dropline_package_list.txt
else
touch /tmp/dropline_package_list.txt
fi
for i in `ls /var/log/packages/*[0-9]dl `
do
test7=`echo $i | awk -F"-" '{print $7}'`
test6=`echo $i | awk -F"-" '{print $6}'`
test5=`echo $i | awk -F"-" '{print $5}'`
test4=`echo $i | awk -F"-" '{print $4}'`
if [ -n "$test7" ]; then
package=`echo $i | awk -F"-" '{print $1 "-" $2 "-"
$3}'`
echo "$package " | sed
"s/\/var\/log\/packages\///g" >> /tmp/dropline_package_list.txt
elif [ -n "$test6" ]; then
package=`echo $i | awk -F"-" '{print $1 "-" $2 "-"
$3}'`
echo "$package " | sed
"s/\/var\/log\/packages\///g" >> /tmp/dropline_package_list.txt
elif [ -n "$test5" ]; then
package=`echo $i | awk -F"-" '{print $1 "-" $2}'`
echo "$package " | sed
"s/\/var\/log\/packages\///g" >> /tmp/dropline_package_list.txt
elif [ -n "$test4" ]; then
package=`echo $i | awk -F"-" '{print $1}'`
echo "$package " | sed
"s/\/var\/log\/packages\///g" >> /tmp/dropline_package_list.txt
fi
done
echo ""
echo "Installing all non-dropline packages in include
directories."
echo ""
for i in `echo $include_dir | tr "," "\012" `
do
for package in `slapt-get --search "^\.\/slackware\/$i\$"
| grep -v devs | grep -v kernel | grep -v lilo | awk '{print $1}'`
do
search_term=`grep "^$package "
/tmp/dropline_package_list.txt`
echo "#"
echo "#"
echo "----------------------------"
echo " #### $package $package $package $package ####"
if [ -n "$search_term" ]; then
echo ""
echo "$package IS DROPLINE: No action taken."
echo ""
echo "----------------------------"
elif [ -z "$search_term" ];then
echo $package | xargs -r slapt-get --install
--no-prompt
echo "----------------------------"
fi
done
done
else # USE_DROPLINE is not set
echo ""
echo "Installing all packages in include directories."
echo ""
for i in `echo $include_dir | tr "," "\012" `
do
package=`slapt-get --search "^\.\/slackware\/$i\$" | grep
-v devs | grep -v kernel | grep -v lilo | awk '{print $1}'`
echo $package
echo "Including Slackware Disk Set $i"
echo $package | xargs -r slapt-get --install --no-prompt
done
fi
if [ $DO_REMOVE ]; then
echo ""
echo "Removing all packages in remove directories."
echo ""
for i in `echo $remove_dir | tr "," "\012" `
do
echo "Removing Slackware Disk Set $i"
slapt-get --search "^\.\/slackware\/$i\$" | awk '{print
$1}' | xargs -r slapt-get --remove --no-prompt
done
fi
echo ""
echo "You have finished upgrading your system using wrap_slapt_get.sh"
echo ""