#! /bin/sh #---------------------------------------------------------------------------- # /var/install/bin/deinstall-package - deinstall EIS/FAIR packages # # Copyright (c) 2001-2005 Michell Schimanski <m.schimanski@tu-bs.de> # the eisfair team, team(at)eisfair(dot)org # # Creation: 2001-12-09 ms # Last Update: $Id$ # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #---------------------------------------------------------------------------- # include eislib . /var/install/include/eislib # include packagelib . /var/install/include/packagelib # List all packages # TRUE list all packages # FALSE list only packages that can be removed list_all_packages=FALSE # Number of entries per page entries_per_page=18 # Startline start_line=3 #exec 2>./deinstall-package-trace-$$.log #set -x #---------------------------------------------------------------------------- # execute cui package list application if curses menu is active #---------------------------------------------------------------------------- . /etc/config.d/setup if [ "$MENU" = "/var/install/bin/show-menu.cui" ] then /var/install/bin/list-packages.cui \ -t "Deinstall package" \ --helpfile=/var/install/help/packages \ --onlyremovable \ --helpname=PACKAGELIST exit 0 fi #---------------------------------------------------------------------------- # print_package_info #---------------------------------------------------------------------------- print_package_info () { clrhome mecho -info "Package information" mecho techo begin 4 16 60 techo row "" "Package:" "$DP_PACKAGE_NAME" techo row techo row "" "Description:" "$DP_PACKAGE_SHORT" techo row techo row "" "Version:" "$DP_PACKAGE_VERSION" techo row techo row "" "Date:" "$DP_PACKAGE_DATE" techo row techo row "" "Author:" "$DP_PACKAGE_AUTHOR" # check package usage, keep result in /tmp/pkglist.$$ if ! /var/install/bin/check-package-usage $DP_PACKAGE_NAME > /tmp/pkglist.$$ then techo row techo row "" -warn "Active package references:" techo row techo row "" "`cat /tmp/pkglist.$$`" fi rm -f /tmp/pkglist.$$ techo end mecho } #============================================================================ # main #============================================================================ maxline=`expr $entries_per_page + $start_line` while [ 1 ] do clrhome if [ $list_all_packages = 'TRUE' ] then mecho -info "Remove packages" else mecho -info "Remove packages (only packages that can be removed are listet)" fi mecho techo begin 4 4 31 28 12 row=$start_line a='' n=0 for j in /var/install/packages/* do if [ $list_all_packages != 'TRUE' ] then # list only packages that can be removed package=`basename $j` [ ! -f /var/install/deinstall/$package ] && continue fi n=`expr $n + 1` parse_infofile $j DP techo row "" "$n." "$DP_PACKAGE_NAME" "$DP_PACKAGE_VERSION" "$DP_PACKAGE_DATE" eval _package_$n='"$j"' row=`expr $row + 1` if [ $row -eq $maxline ] then mecho mecho /var/install/bin/ask "Select package to remove" "" "1-$n" "^$=next page" "b=Back" "0=Exit" > /tmp/ask.$$ rc=$? a=`cat /tmp/ask.$$` rm -f /tmp/ask.$$ if [ $rc = 255 ] then exit 1 fi case "$a" in 0) techo end exit 127 ;; b) techo end exit 0 ;; '') # show next page ;; *) break ;; esac clrhome if [ $list_all_packages = 'TRUE' ] then mecho -info "Remove packages" else mecho -info "Remove packages (only packages that can be removed are listet)" fi mecho row=$start_line fi done techo end if [ "$a" = "" ] then mecho mecho /var/install/bin/ask "Select package to remove" "" "1-$n" "^$=Return" "0=Exit" > /tmp/ask.$$ rc=$? a=`cat /tmp/ask.$$` rm -f /tmp/ask.$$ if [ $rc = 255 ] then exit 1 fi fi case "$a" in 0) exit 127 ;; '') exit 0 ;; *) ;; esac eval file='$_package_'$a parse_infofile $file DP print_package_info mecho /var/install/bin/ask "Do you really want to delete it" 'n' > /tmp/ask.$$ rc=$? yesno=`cat /tmp/ask.$$` rm -f /tmp/ask.$$ if [ $rc = 255 ] then exit 1 fi if [ "$yesno" = "yes" ] then echo pfile=`basename $file` /var/install/bin/del-package $pfile else exit 0 fi anykey done #============================================================================ # end #============================================================================