#!/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 rl="$( (epm --quiet repolist) 2>/dev/null | grep -F "$1" | head -n1 )" [ -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" ] && message 'will comment $rp' && continue sed -i -e "s|^\($(sed_escape "$rl")\)|#\1|" $alt_LISTS 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 "$@" ;; dnf5-rpm) sudocmd dnf config-manager setopt "$@.enabled=0" ;; eoget) docmd eoget disable-repo "$@" ;; *) fatal 'Have no suitable command for $PMTYPE' ;; esac }