#!/usr/bin/python3 # Empty output indicates success; any input indicates error (probably an exception) import dnf import iniparse import os import sys os.umask(0o022) base = dnf.Base() base.read_all_repos() reponame = sys.stdin.readline() repo = base.repos[reponame] # Loosely based on write_raw_configfile() from DNF source code, # because that method was introduced in DNF 2.0 but Qubes dom0 has DNF 1.x. with open(repo.repofile) as fp: ini = iniparse.INIConfig(fp) ini[reponame]['enabled'] = 0 with open(repo.repofile + '.new', 'w') as fp: fp.write(str(ini)) os.rename(repo.repofile + '.new', repo.repofile)