You need to sign in or sign up before continuing.
epm-repodisable 1.76 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
#!/bin/sh
#
# Copyright (C) 2023  Etersoft
# Copyright (C) 2023  Vitaly Lipatov <lav@etersoft.ru>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 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 Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#

load_helper epm-sh-altlinux
#load_helper epm-repolist

alt_LISTS='/etc/apt/sources.list /etc/apt/sources.list.d/*.list'


__epm_repodisable_alt()
{
	local rl
	# ^rpm means full string
	if rhas "$1" "\^rpm" ; then
		rl="$(echo "$1" | sed -e 's|\^||')"
	else
33
		rl="$( (epm --quiet repolist) 2>/dev/null | grep -F "$1" | head -n1 )"
34 35 36 37
		[ -z "$rl" ] && warning "Can't find '$1' entries in the repos (see '# epm repolist' output)" && return 1
	fi
	echo "$rl" | while read rp ; do
		[ -n "$dryrun" ] && echo "will comment $rp" && continue
38
		sed -i -e "s|^\($(sed_escape "$rl")\)|#\1|" $alt_LISTS
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
	done
}


epm_repodisable()
{

case $PMTYPE in
	apt-rpm)
		assure_root
		__epm_repodisable_alt "$@"
		;;
	apt-dpkg|aptitude-dpkg)
		print_apt_sources_list
		;;
	yum-rpm)
		docmd yum repolist $verbose
		[ -n "$verbose" ] || info "Use --verbose if you need detail information."
		;;
	dnf-rpm)
		sudocmd dnf config-manager --enable $verbose "$@"
		;;
	eoget)
		docmd eoget disable-repo "$@"
		;;
	*)
		fatal "Have no suitable command for $PMTYPE"
		;;
esac

}