sɕddlZddlZddlZddlZddlZddlZddlmZmZm Z m Z ddl m Z ej e jZeejdZedZedZedZedZed Zed Zd Zd Zd ZdZdZdZdZdZ dZ!ddZ"e#dkr e"dSdS)N)backup_backendshelperslogrestore)BackendNonApplicableErrorc>tjfd}|S)Ncdjvr-|r+|dd|zd||d|dS)N extra_argszunrecognized arguments:  )parserr )argserrorjoin)r r kwargsfuncspecs I/opt/imunify360/venv/lib/python3.11/site-packages/restore_infected/cli.pywrapperzaction..wrappersd ty ( (Z ( LL*SXXj-A-AA    zaction_init..6s#GGGUh1F1F51F1F1Frzinit arguments required: r zinit unknown keys: N) rrinitrparse_extra_args#_get_values_for_envvars_init_actionfill_args_from_envvalidate_paramsrr) backendr r _r parsed_args parsed_kwargs init_args init_kwargsmissingunknownrs @r action_initr-%s  !', / /D!(!9*!E!EK27<FFH$7  I{ .tY LLGWGGGGgGGGGwF 0388G3D3DDEEE@ *SXXg->->>???GL)+{+++++rc Htj|jfd|D}|j|fi|}|rCtt jd|DdStj ddS)Nc.i|]\}}|jv||Sr ) kwonlyargs)rkvrs r zaction_list..Gs+ D D DTQqDO/C/CAq/C/C/Crc,g|]}t|Sr )str)rbs rrzaction_list..Ks$=$=$=SVV$=$=$=rzNo backups found) rrbackupsitemsloggerinfooslineseprsysexit)r%untilrrr7rs @r action_listr@Ds  !'/ 2 2D D D D DV\\^^ D D DDgoe,,t,,G% BJOO$=$=W$=$=$=>>????? #$$$$$rc tj|||\}}|rQtdttj||rStdttj|dSdS)NzRestore success:zRestore failed:)rrestore_infectedr9r:r;r<r)r%filesr?r&successfaileds raction_restorerFPs.wuEEOGV. &''' BJOOG,,--- - %&&& BJOOF++,,,,,--rc .|dSN)cleanup)r%r&s raction_cleanuprJ]s OOrc |}|r.ttj|dSdSrH)r:r9yaml safe_dump)r%r&r:s r action_inforNbsC <<>>D * DN4(()))))**rc t||d}t|dds(|d|||}|rt|dSdS)NextraFzinvalid extra action: {0})getattrrformatr9r:)r% extra_actionr r r& extra_funcresults r action_extrarVis,55J :w . .G 077 EEFFF Z $F  Frc f|dd|jzdS)Nz%one of the action must be specified: r )rrchoices)r subparsersr&s r action_nonerZts9 LL/#((:;M2N2NNrc2|||gS)Nparents) add_parser)namerYparents rr^r^zs  x 8 88rcDtjd}|ddddd|d d d d d tj|g}|t|ddt jd||fS)NF)add_helpz-vz --verbosecountrzfPrint more messages depending on flag count: v=verbose, vv=verbose with timestamps, vvv=debug messages)rdefaulthelpz-oz--outputoutputPATHzWrite log to specified file)destmetavarrer\)rr%BACKENDzBackup backend to use)ritypere)argparseArgumentParser add_argument set_defaultsrZrr%)r`r s r setup_parsersrp~s  $e 4 4 4F k'12333  jx:<<<  $fX 6 6 6F {+++  9,44666 6>rc>|}td||}|tdtd||}|td|ddddt jd td ||}|td |d ddd|ddddt jd td||}|tdtd||}|tdtd||}|td|dd|S)Nr Init)r action_reprlistzGetting backup listz-uz--untilDATEz!Dig backups not earlier this date)rdrirkrerRestorerC+FILEzList files to restore)nargsrirerICleanupr:InforPz Extra actionsrSzExtra action for backend)re) add_subparsersr^ror-r@rnrDateTimerFrJrNrV) r r`rY parser_init parser_listparser_restoreparser_cleanup parser_info parser_extras rsetup_subparsersrs&&((JVZ88KKVDDDVZ88KK)>@@@T9dF")"2"EGGG :v>>N~9MMMsF%< >>>iv%,%5%H JJJ :v>>N~9MMMVZ88KKVDDDgz6::L\OOOn3MNNN rcltj|jj}|j}|jpi}t j}|D]\}d|z}i}||vr(||} | |d<t| trd|d<nd|d<|j |fd| i|]| |S)Nz--%srdrwryTrequiredri) rrr%r7r0kwonlydefaultsrlrm isinstancetuplernupperparse_known_args) namespacerrkeysdefaultsr keyr_ argument_kwrds rlist_custom_args_parsers  !)"3"; < >Iz;&&4Y KK&JJiJDMMJJ %II%I rc|s|stjdStj|tj|dSrH)rlog_only_cli_modulelog_to_console log_to_file) verbosityrfs r enable_logsrsL V !!!y!!!OFrc |di|dS#tj$rJ}|jrt|jt j|jYd}~dSd}~wt$r`}td |dt|t jdYd}~dSd}~wwxYw)Nz {} error: %srsr ) r ActionErrormessager9rr=r>code ExceptionrRr5)rres r apply_actionrs v   9 $ LL # # #   ^**6-+@AA3q66JJJ  s! C ?A  C -ACC cVt|di}d|Dfdt|j|jrt |j ndd|jr|jngDfd|D}i|S)Nfrom_envc4g|]\}}|tjv|Sr r;environ)rargenv_names rrz7_get_values_for_envvars_init_action..s/XXRZ5O5O5O5O5Orc$i|] \}}|v || Sr r )rr1r2r+s rr3z7_get_values_for_envvars_init_action..s4 Aq << 1 <.sG C h  8rz#9#9 RZ !#9#9#9r)rQr8ziprrlen)rrrvalues_from_envrr+s @@rr"r"stZ,,H!)!1!1G  IT]As4=))))BB C!] 2DMM  H&%^^--O +h */ **rcn|tjdd}t\}}t||} t |||}n+#t $r}tj|Yd}~nd}~wwxYwt|j|j t|j it|dS)Nrr) r=argvrprrrr>rverboserfrrr)r arg_parser parent_parsersubsnserrs rmainrs |x| -J J 6 6D  Dt 4 4 4 $   BI&&&LtBxxL)))))sA A4A//A4__main__rH)$rlrloggingr;r=rLrBrrrr$restore_infected.backup_backends_libr getLogger CLI_LOGGERr9setLevelDEBUGrr-r@rFrJrNrVrZr^rprrrrrr"r__name__r rrrs  CCCCCCCCCCCCJJJJJJ  3> * *    ,,,<%%% - - -***  999"@)))0      $+$+$+N****" zDFFFFFr