a „oeQ ã@s ddlZddlZddlZddlZddlZddlZddlZddlZddlZGdd„de ƒZ dd„Z d%dd„Z d&d d „Z d'd d „Zd(d d„Zd)dd„Zdd„ZddlZddlZGdd„dejjjƒZdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Ze d$k�reƒdS)*éNc@s eZdZdS)Ú InvalidUsageN)Ú__name__Ú __module__Ú __qualname__©rrú9C:\Program Files\Certbot\pkgs\win32\scripts\ce\pysynch.pyrsrcCs |\}}}td|||fƒdS)Nz %s - %s(%d))Úprint)Zapi_excÚmsgÚhrÚfnÚerrmsgrrrÚ print_errors r écCs|rt |¡St |¡SdS©N)Úwin32apiÚGetFileAttributesÚ wincerapiZCeGetFileAttributes)ÚfileÚlocalrrrrs rcCs|rt |¡St |¡SdSr)rÚ FindFilesrZ CeFindFiles)Úspecrrrrrs rcCs2zt||ƒ}|tj@WStjy,YdS0dS)Nr)rÚwin32conÚFILE_ATTRIBUTE_DIRECTORYrÚerror)ÚnamerÚattrrrrÚisdir&s   rc Cs¬t |tjddtjdd¡}d}z~t |tjddtjdd¡}zLt  |d¡\}}|sRq|t  ||¡|t |ƒ}|dur<||ƒqrrrrr:xsr:c Csôd}}d}zt |d¡\}}Wn.tjyN}zt|ƒ‚WYd}~n d}~00|D]"\}}|dkrjd}qT|dkrTd}qTt|ƒdkrŒtdƒ‚|dd …} |d } t | dd ¡dkrºd} nt | d ¡dkrÐd} nd} t| | ƒsètd ƒg} d} d}td ƒ}|  t   ¡¡| �rØ| D]0}t |d|t |ƒ}|�s:td |ƒ| |} �q| D]Œ\}}}tj | |¡}|d}td|ƒ|�rŒt|d|ddd�| |¡| d|d¡t|||jƒ}||}|�rÌt|dƒ| d} �qJ| ¡td| |fƒdS)zCcopy src [src ...], dest Copy files to/from the CE device rrÚrvNú-rz-véz%Must specify a source and destinationéÿÿÿÿzWCE:z %s does not indicate a directoryz Copying filesz%Warning: '%s' did not match any filesézSize=z->z- ú )Úendr;r#z%d files copied (%d bytes))ÚgetoptrrrÚstringÚfindrrr:Z CreateWindowÚwin32uiZ GetMainFramer/r9r*r+r-ZSetTextr<r%r>r)ÚargsÚbRecurseZbVerboser8ÚoptsÚdetailsÚoÚvZbRecuseÚsrcÚdestZ bToDevicer3Z num_filesZ num_bytesZdialogrÚnewZfull_srcZsrc_infoZ dest_infor!Úsizer#rrrÚcopy}s`          rTcGs|dSr6r)rJrrrÚ _dirfilter»srUc Csd}zt |d¡\}}Wn.tjyF}zt|ƒ‚WYd}~n d}~00|D]\}}|dkrLd}qL|D]”}td|ƒt|d|tdƒ}d}|D]R\} } } | d d¡} d } | dtj@r¼d } td | | | d | fƒ|| d }qŽtd dt |ƒ|fƒqfdS)zPdir directory_name ... Perform a directory listing on the remote device rÚrNr@rzDirectory of WCE:%séz%d-%b-%Y %H:%Mz zz%s %s %10d %srCz z%3d files, %10d bytes) rFrrrr/rUZFormatrrr)rJrKrLrMrNrOÚargr3Z total_sizer7r4r5Zdate_strZ attr_stringrrrÚdir¿s(  rYc Cs^g}|D]*}d|vr(| d|d¡q| |¡qt |d¡}t |dddddddd¡ dS)zNrun program [args] Starts the specified program on the remote device. rDú"r&Nr)r1rGr-rZCeCreateProcess)rJZ prog_argsrXrrrÚrunÙs  r[c Cs^|D]T}zt |¡td|ƒWqtjyV}zt|d|ƒWYd}~qd}~00qdS)z9delete file, ... Delete one or more remote files z Deleted: %szError deleting '%s'N)rZ CeDeleteFilerrrr )rJrXrMrrrÚdeleteçs  r\cCs”tddƒtddƒttƒ ¡ƒD]h\}}t|ƒttƒkr&t|ddƒ}|r&t |d¡}td||dfƒ|dd…D]}|rztd |ƒqzq&dS) Nz %-10s - %s)ZCommandZ Description)z-------z -----------Ú__doc__r&Ú rrz ) rÚlistÚglobalsÚitemsÚtypeÚ DumpCommandsÚgetattrrGr,)rÚitemÚdocÚlinesÚlinerrrrcós    rccCs\ttjƒdkr tdƒtƒdStjd}tƒ |¡}|durRtd|ƒtƒdSt ¡zºt  ¡}td|d|d|dfƒz|tjdd…ƒWn8t yÐ}z td|ƒt|j ƒWYd}~n d}~00Wz t  ¡Wn2t j�y}zt|d ƒWYd}~n d}~00nBz t  ¡Wn2t j�yT}zt|d ƒWYd}~n d}~000dS) NrAzYou must specify a command!rzUnknown command:z(Connected to device, CE version %d.%d %srézInvalid syntax -zError disconnecting)rÚsysÚargvrrcr`ÚgetrZ CeRapiInitZCeGetVersionExrr]Z CeRapiUninitrrr )Zcommandr Zverinfor rMrrrÚmains>   ÿÿ " "ý rmÚ__main__)r)r)r)N)r&)!r0rFr*rGrjrrrrÚ Exceptionrr rrrr%r/r9Zpywin.dialogs.statusZpywinrIZdialogsÚstatusZCStatusProgressDialogr:rTrUrYr[r\rcrmrrrrrÚs8     $>