qubes-core-admin-linux/qubes-rpc/qubes.repos.Enable

33 lines
648 B
Plaintext
Raw Normal View History

#!/usr/bin/python3
# `ok` on stdout indicates success; any stderr output indicates an error
# (probably an exception)
import dnf
import iniparse
2018-12-09 06:46:38 +00:00
import os
import sys
2018-12-09 07:03:17 +00:00
os.umask(0o022)
base = dnf.Base()
base.read_all_repos()
2018-12-09 07:09:46 +00:00
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:
2018-12-09 06:42:46 +00:00
ini = iniparse.INIConfig(fp)
ini[reponame]['enabled'] = 1
2018-12-09 06:46:38 +00:00
with open(repo.repofile + '.new', 'w') as fp:
2018-12-09 06:42:46 +00:00
fp.write(str(ini))
2018-12-09 06:46:38 +00:00
os.rename(repo.repofile + '.new', repo.repofile)
print('ok')