#!/bin/sh # # Copyright (C) 2012 Etersoft # Copyright (C) 2012 Vitaly Lipatov <lav@etersoft.ru> # # This file 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. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. # # Try remove with low level removing epm_remove_low() { [ -z "$1" ] && return case $PMTYPE in apt-rpm|yum-rpm|zypper-rpm|urpm-rpm) docmd $SUDO rpm -ev $nodeps $@ return ;; apt-dpkg) docmd $SUDO dpkg -P $@ return ;; pkg_add) docmd $SUDO pkg_delete -r $@ return ;; emerge) docmd $SUDO emerge -unmerge $@ return ;; slackpkg) docmd $SUDO removepkg $@ return ;; esac return 1 } epm_remove_names() { [ -z "$1" ] && return case $PMTYPE in apt-rpm|apt-dpkg) docmd $SUDO apt-get remove --purge $@ return ;; urpm-rpm) docmd $SUDO urpme $@ return ;; pkg_add) # without dependencies docmd $SUDO pkg_delete $@ return ;; emerge) #docmd $SUDO emerge --unmerge $@ docmd $SUDO emerge -aC $@ return ;; pacman) docmd $SUDO pacman -R $@ return ;; yum-rpm) docmd $SUDO yum remove $@ return ;; zypper-rpm) docmd $SUDO zypper remove $@ return ;; mpkg) docmd $SUDO mpkg remove $@ return ;; slackpkg) docmd $SUDO slackpkg remove $@ return ;; *) fatal "Do not known command for $PMTYPE" ;; esac } # TODO epm_remove_nonint() { case $PMTYPE in apt-rpm|apt-dpkg) docmd $SUDO apt-get -y --force-yes remove --purge $@ return ;; urpm-rpm) docmd $SUDO urpme --auto $@ return ;; pacman) docmd $SUDO pacman -R --noconfirm $@ return ;; yum-rpm) docmd $SUDO yum -y remove $@ return ;; zypper-rpm) docmd $SUDO zypper --non-interactive remove $@ return ;; slackpkg) docmd $SUDO slackpkg -batch=on -default_answer=yes remove $@ return ;; esac return 5 } epm_remove() { [ -n "$pkg_filenames" ] || fatal "Run remove without args" epm_remove_low $pkg_filenames && return if [ -n "$non_interactive" ] ; then epm_remove_nonint $pkg_filenames local RET=$? # if not separate command, use usual command [ "$RET" = "5" ] || return $RET fi epm_remove_names $pkg_filenames }