#!/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)