ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ iB^c@`sddlmZddlmZddlmZddlZddlmZddlmZm Z m Z m Z m Z m Z defd YZdS( i(tprint_function(tdivision(tabsolute_importN(tBasePkgManageri(t CONFIG_DIRtis_major_versiontcreate_config_dirst ALT_NAMEStscan_node_versionstALT_NODE_PREFIXt PkgManagercB`seZdZdZeZdZdZeZ dZ dj ede de gZ dj ede de gZ d Zd Zd Zd Zd ZedZRS(s Class responsible for all interactions with Yum, NodeJS version installation/removal and gathering info about already installed versions cC`stt|jdS(N(tsuperR t__init__(tself((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejs/pkgmanager.pyR ss {yum_cmd} grouplist '{alt_names}*' --disablerepo='*' --enablerepo='cloudlinux-*' {disable_testing} 2>/dev/null | grep {alt_names} > {cache_file}.tmp; mv {cache_file}.tmp {cache_file}; rm -f {cache_file}.tmp; s)LANG=C yum --disableplugin=fastestmirror s!&>/var/log/cl-nodejs-last-yum.logts-y groupinstall s{} s7--enablerepo=cloudlinux-updates-testing -y groupremove cC`stdj|S(Ns{}/.lock(R tformat(R tversion((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejs/pkgmanager.pyt_get_lock_file_pathFscC`s3t|sdj|S|j}|r/|SdS(s5Do some common pre-installation/uninstallation checkss3Invalid version "{}". It should be positive integerN(RRt_check_yum_in_progress(R Rt working_error((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejs/pkgmanager.pyt_verify_actionIs   cC`s<|j}|dkr&|jdStjd|}|S(s Should return list of major versions available to install from currently enabled repos. Note, this can be an empty list if no NodeJS version has been released to repos yet or in case of network/repos/yum problem. OR None if our cache is updating right now because it was absent/outdated/corrupted/etc. :rtype: list | None s\s+alt-nodejs(\d+)\nN(t_read_yum_cachetNonetupdate_yum_cachetretfindall(R tdatat available((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejs/pkgmanager.pytcheckout_availableRs   cC`stS(N(R(R ((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejs/pkgmanager.pyt_scan_interpreter_versionsgscC`s tdS(N(R(R ((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejs/pkgmanager.pyt_create_config_dirsjscC`s&ddlm}|}|j|S(sJ Check what passed version isn't used any web-application i(tApplicationsManager(t$clselect.clselectnodejs.apps_managerRtis_version_in_use(RRt apps_manager((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejs/pkgmanager.pyt_is_version_in_usems (t__name__t __module__t__doc__R Rt _config_dirt _mk_cache_cmdt_yum_cmdRt _alt_namest _redirect_logtjoint _install_cmdt _remove_cmdRRRRRt staticmethodR#(((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejs/pkgmanager.pyR s.        (t __future__RRRRt clselect.baseclselect.pkgmanagerRRRRRRRR R (((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejs/pkgmanager.pyts  .