lh>ddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z ej e Z d dZejdZdZd d Zd Zd ZdS)N) clcaptain)ExternalProgramFailedTc$ t|d5}|cdddS#1swxYwYdS#ttf$r>t jd|ztjd|stjdYdSwxYw)z Helper for read file, process errors and make backup before read :param: filename `str` name of file for read :param: exit_on_error `bool` use sys.exit on error or raise exception rNzError: failed to read ) open readlinesOSErrorIOErrorsecureiologging SILENT_FLAGsysexit)filename exit_on_error_files Bopt/cloudlinux/venv/lib/python3.11/site-packages/clcagefslib/io.py read_filers  (C  %E??$$ % % % % % % % % % % % % % % % % % % W 1HRTUVVV    s-A3 A7A7AA BBc t|SN)r)paths rread_file_cachedr%s T??cztj|||||tj}tj||duS)N)logger)r create_dir_securer closefd)rpermuidgid parent_pathfds r make_userdirr$+sF  # dCk(2B   B R :rFc |s tj|s2 tj|nj#t$r]}|jt jkrtd|dnt d||Yd}~nd}~wwxYw tj ||n#ttf$r}d|d|dt|dd }t |||rtj||d nt#|t$j Yd}~d Sd}~wwxYwd S) NzSymlink z does not existz Error: Unable to remove symlink )exc_infoz Error: failed to create symlink z to z : ErrnozErr codeT)fileF)osrislinkunlinkr errnoENOENTrinfoerrorrsymlinkrstrreplacer r printrstderr) dest_path link_name write_logforcesilentemsgs rswitch_symlinkr<4s BGNN9-- Y Ii  Y Y Yw%,&& AyAAABBBB K KKVW XXX  Y   i 3 3 3 3./   wYwwIwwRUVWRXRXR`R`ahjtRuRuwwC LLqL ) ) ) , fd3333c ++++44444  5s/9 B ABB $B::E A2 C+>BC+BC+C C$#C$+"D5D#"D5# D0-D5/D00D5c*tj|tjtjztjz} tj||tj|||tj|dS#tj|wxYwr)r)rO_RDONLY O_NOFOLLOW O_CLOEXECfchmodfchownclose)rmoder r!r#s rapply_metadata_nofollowrW[ss r{R]2R\A B BB "d "c3   s +A<<B)T)TTF)r, functoolsr r)rrAr clcommonrclcommon.utilsr getLogger__name__rrcacherr$r<rNrWrrr_s   000000  8 $ $"  ,"     r