a f8h"@sdZddlZddlZddlZddlZddlZddlmZddlmZddl m Z ddl m Z ej ddd Zeed s|eje_ejZe d krddlZd d ZnddlmZdd ZddZddZddZddZddZejddZdS)zutility functions for up2dateN) up2dateErrors)config) getPlatformsstrzrhn-client-toolsT)fallbackugettextdebcCs6t}|d}d}d|vr$|d}|d}|||fS)NZIDzn/aZCODENAMEZRELEASE) lsb_releaseZget_distro_information)Z dist_infoZos_nameZ os_version os_releaser ?/usr/lib/python3.9/site-packages/up2date_client/up2dateUtils.py_getOSVersionAndReleasesr) transactioncCs|t}|ddD]}d}t|d}t|d}|dd|dDvr~td dt|d|d D}d ||f}||}t|d ||f}|S|dd D]}d}t|d}t|d}|dd|dDvrtddt|d|d D}d ||f}||}t|d ||f}|S|ddD]6}t|d t|dt|df}|j|St ddS)NZ Providenamezoraclelinux-releasezsystem-release(releasever)versionreleasecss|]}t|VqdSNr.0Zprovider r r ,z*_getOSVersionAndRelease..Z providenamecss"|]\}}t|t|fVqdSrrrnvr r r r-sZprovideversionz%s-%snamezredhat-releasecss|]}t|VqdSrrrr r r r8rcss"|]\}}t|t|fVqdSrrrr r r r9szdistribution-releasezxCould not determine what version of CloudLinux you are running. If you get this error, try running rpm --rebuilddb ) rZinitReadOnlyTransactionZdbMatchrdictziptsZcloseDBrZRpmError)rhZ SYSRELVERrrZprovidesZosVersionReleaser r r r&s@      " cCs,t}|drt|dSt\}}}|S)z3 Returns the version of redhat-release rpm ZversionOverride)rZinitUp2dateConfigstrr)Zcfgr rrr r r getVersionLs   r cCst\}}}|S)z4 Returns the name of the redhat-release rpm rr rrr r r getOSReleaseVs r#cCst\}}}|S)z7 Returns the release of the redhat-release rpm r!r"r r r getRelease]s r$cCsztdtjr@tdd}|}ddi}||vr<||}|Std}tdkrv|dvrbd}|d krnd }|d 7}|S) Nz/etc/rpm/platformrzia32e-redhat-linuxzx86_64-redhat-linuxr )Zi486Zi586Zi686Zi386Zx86_64Zamd64z -debian-linux)osaccessR_OKopenreadstripunamer)fdplatformreplaceZarchr r r getArchds    r1cCsdS)Nz2.12.5-1.el9.cloudlinuxr r r r r rysrc cst\}}td}td}t|dt|dz"dVWt|dt|dnt|dt|d0t|t|B}td|}|D]}| |st |t j dqWdn1s0YdS)zP Context manager to suppress errors matching the specified patterns N|)file) r'pipedupdup2closefdopenrecompilejoinsearchprintsysstderr)Zerror_patternsZread_endZ write_endZ old_stdoutZ old_stderrfZcombined_patternliner r r suppress_errors~s"          rD)__doc__ contextlibr'r@r;gettextZup2date_clientrrZup2date_client.pkgplatformrZrhn.i18nr translationthasattrr_r rrr r#r$r1rcontextmanagerrDr r r r s2       &