# -*- coding: UTF-8 -*-

import sys
import locale
from univention.lib.package_manager import PackageManager


def _errors():
	yield SystemError('E:Fehler: Unterbrechungen durch pkgProblemResolver::Resolve hervorgerufen; dies könnte durch zurückgehaltene Pakete verursacht worden sein.')
	yield SystemError('E:Fehler: Unterbrechungen durch pkgProblemResolver::Resolve hervorgerufen; dies könnte durch zurückgehaltene Pakete verursacht worden sein.')
	yield SystemError('E:Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.')
	yield SystemError('''E:Could not open file /var/lib/apt/lists/updates.software-univention.de_4.0_unmaintained_4.0-1_all_Packages - open (2: No such file or directory),
E:Could not open file /var/lib/apt/lists/updates.software-univention.de_4.0_maintained_4.0-1_amd64_Packages - open (2: No such file or directory),
E:Could not open file /var/lib/apt/lists/updates.software-univention.de_4.0_maintained_4.0-1_all_Packages - open (2: No such file or directory),
E:Could not open file /var/lib/apt/lists/updates.software-univention.de_4.0_unmaintained_4.0-0_amd64_Packages - open (2: No such file or directory),
E:Could not open file /var/lib/apt/lists/updates.software-univention.de_4.0_unmaintained_4.0-0_all_Packages - open (2: No such file or directory),
E:Could not open file /var/lib/apt/lists/updates.software-univention.de_4.0_maintained_4.0-0_amd64_Packages - open (2: No such file or directory),
E:Could not open file /var/lib/apt/lists/updates.software-univention.de_4.0_maintained_4.0-0_all_Packages - open (2: No such file or directory),
E:Could not open file /var/lib/apt/lists/ucc.software-univention.de_unmaintained_component_ucc-coolsolutions_amd64_Packages - open (2: No such file or directory)'''.replace('\n', ' '))
	yield SystemError('''E:Datei /var/lib/apt/lists/repository.local.censored.de_univention-repository_3.2_maintained_3.2-0_all_Packages konnte nicht ge?ffnet werden - open (2: Datei oder Verzeichnis nicht gefunden),
E:Datei /var/lib/apt/lists/repository.local.censored.de_univention-repository_3.1_maintained_3.1-1_amd64_Packages konnte nicht ge?ffnet werden - open (2: Datei oder Verzeichnis nicht gefunden)'''.replace('\n', ' '))
	yield SystemError('''E:Datei /var/lib/apt/lists/192.168.0.10_build2_ucs%5f4.0-0-mytoys_all_Packages konnte nicht ge?ffnet werden. - open (2: Datei oder Verzeichnis nicht gefunden),
E:Datei /var/lib/apt/lists/192.168.0.10_build2_ucs%5f4.0-0-ucs-school-4.0_amd64_Packages konnte nicht ge?ffnet werden. - open (2: Datei oder Verzeichnis nicht gefunden),
E:Datei /var/lib/apt/lists/192.168.0.10_build2_ucs%5f4.0-0-ucs-school-4.0_all_Packages konnte nicht ge?ffnet werden. - open (2: Datei oder Verzeichnis nicht gefunden),
E:Datei /var/lib/apt/lists/192.168.0.10_build2_ucs%5f4.0-0-errata4.0-0_amd64_Packages konnte nicht ge?ffnet werden. - open (2: Datei oder Verzeichnis nicht gefunden)'''.replace('\n', ' '))
	yield SystemError('''E:Problem beim Umbenennen der Datei /var/cache/apt/srcpkgcache.bin.954KLM nach /var/cache/apt/srcpkgcache.bin - rename (2: Datei oder Verzeichnis nicht gefunden),
E:Problem beim Umbenennen der Datei /var/cache/apt/pkgcache.bin.f02tYU nach /var/cache/apt/pkgcache.bin - rename (2: Datei oder Verzeichnis nicht gefunden),
E:Die Paketliste oder die Statusdatei konnte nicht eingelesen oder ge?ffnet werden.'''.replace('\n', ' '))
	yield SystemError('''E:Problem beim Umbenennen der Datei /var/cache/apt/pkgcache.bin.Y6gCxD nach /var/cache/apt/pkgcache.bin - rename (2: Datei oder Verzeichnis nicht gefunden),
W:Probieren Sie »apt-get update«, um diese Probleme zu korrigieren.'''.replace('\n', ' '))
	yield SystemError('''E:Write error - write (28: No space left on device),
E:IO Error saving source cache,
E:The package lists or status file could not be parsed or opened.'''.replace('\n', ' '))
	yield SystemError('''W:Datei >>20_ucs-online-component.list.old<< in Verzeichnis >>/etc/apt/sources.list.d/<< wird ignoriert, da sie eine ung?ltige Dateinamen-Erweiterung hat.,
E:Schreibfehler - write (28: Auf dem Ger?t ist kein Speicherplatz mehr verf?gbar),
E:E/A-Fehler beim Speichern des Quell-Zwischenspeichers,
E:Die Paketliste oder die Statusdatei konnte nicht eingelesen oder ge?ffnet werden.'''.replace('\n', ' '))
	yield SystemError('''W:Ignoring file '20_ucs-online-component.list.old' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension,
W:Ignoring file '20_ucs-online-component.list.old' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension,
W:Ignoring file '20_ucs-online-component.list.old' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension,
E:Problem renaming the file /var/cache/apt/pkgcache.bin.i85lEb to /var/cache/apt/pkgcache.bin - rename (2: No such file or directory),
W:You may want to run apt-get update to correct these problems'''.replace('\n', ' '))

errors = set()
p = PackageManager()

for loc in ('de_DE.UTF-8', 'en_US.UTF-8'):
	try:
		locale.setlocale(locale.LC_ALL, loc)
	except locale.Error:
		continue
	for error in _errors():
		try:
			raise error
		except SystemError as exc:
			try:
				p._handle_system_error(exc, *sys.exc_info())
			except SystemError as msg:
				errors.add(str(msg))
for error in errors:
	print '\n#####################\n\n', error
