30 lines
620 B
Python
Executable File
30 lines
620 B
Python
Executable File
#!/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.argv[1]
|
|
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)
|