a oeQ @s ddlZddlZddlZddlZddlZddlZddlZddlZddlZGddde Z ddZ d%ddZ d&d d Z d'd d Zd(d dZd)ddZddZddlZddlZGdddejjjZddZddZddZddZddZd d!Zd"d#Ze d$kredS)*Nc@s eZdZdS) InvalidUsageN)__name__ __module__ __qualname__rr9C:\Program Files\Certbot\pkgs\win32\scripts\ce\pysynch.pyrsrcCs |\}}}td|||fdS)Nz %s - %s(%d))print)Zapi_excmsghrfnerrmsgrrr print_errors r cCs|rt|St|SdSN)win32apiGetFileAttributes wincerapiZCeGetFileAttributes)filelocalrrrrs rcCs|rt|St|SdSr)r FindFilesrZ CeFindFiles)specrrrrrs rcCs2zt||}|tj@WStjy,YdS0dS)Nr)rwin32conFILE_ATTRIBUTE_DIRECTORYrerror)namerattrrrrisdir&s   rc Cst|tjddtjdd}d}z~t|tjddtjdd}zLt |d\}}|sRq|t |||t |}|dur<||qrrrrr:xsr:c Csd}}d}zt|d\}}Wn.tjyN}zt|WYd}~n d}~00|D]"\}}|dkrjd}qT|dkrTd}qTt|dkrtd|dd } |d } t| dd dkrd} nt| d dkrd} nd} t| | std g} d} d}td }| t | r| D]0}t |d|t |}|s:td || |} q| D]\}}}tj| |}|d}td||rt|d|ddd|||d|dt|||j}||}|rt|d| d} qJ|td| |fdS)zCcopy src [src ...], dest Copy files to/from the CE device rrrvN-rz-vz%Must specify a source and destinationzWCE:z %s does not indicate a directoryz Copying filesz%Warning: '%s' did not match any fileszSize=z->z-  )endr;r#z%d files copied (%d bytes))getoptrrrstringfindrrr:Z CreateWindowwin32uiZ GetMainFramer/r9r*r+r-ZSetTextr<r%r>r)argsbRecurseZbVerboser8optsdetailsovZbRecusesrcdestZ bToDevicer3Z num_filesZ num_bytesZdialogrnewZfull_srcZsrc_infoZ dest_infor!sizer#rrrcopy}s`          rTcGs|dSr6r)rJrrr _dirfiltersrUc Csd}zt|d\}}Wn.tjyF}zt|WYd}~n d}~00|D]\}}|dkrLd}qL|D]}td|t|d|td}d}|D]R\} } } | dd} d } | dtj@rd } td | | | d | f|| d }qtd dt ||fqfdS)zPdir directory_name ... Perform a directory listing on the remote device rrNr@rzDirectory of WCE:%sz%d-%b-%Y %H:%Mz zz%s %s %10d %srCz z%3d files, %10d bytes) rFrrrr/rUZFormatrrr)rJrKrLrMrNrOargr3Z total_sizer7r4r5Zdate_strZ attr_stringrrrdirs(  rYc Cs^g}|D]*}d|vr(|d|dq||qt|d}t|dddddddd dS)zNrun program [args] Starts the specified program on the remote device. rD"r&Nr)r1rGr-rZCeCreateProcess)rJZ prog_argsrXrrrruns  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 )rJrXrMrrrdeletes  r\cCstddtddttD]h\}}t|ttkr&t|dd}|r&t|d}td||df|ddD]}|rztd |qzq&dS) Nz %-10s - %s)ZCommandZ Description)z-------z -----------__doc__r& rrz ) rlistglobalsitemstype DumpCommandsgetattrrGr,)ritemdoclineslinerrrrcs    rccCs\ttjdkr tdtdStjd}t|}|durRtd|tdStzt }td|d|d|dfz|tjddWn8t y}z td|t|j WYd}~n d}~00Wz t Wn2t jy}zt|d WYd}~n d}~00nBz t Wn2t jyT}zt|d WYd}~n d}~000dS) NrAzYou must specify a command!rzUnknown command:z(Connected to device, CE version %d.%d %srzInvalid syntax -zError disconnecting)rsysargvrrcr`getrZ CeRapiInitZCeGetVersionExrr]Z CeRapiUninitrrr )Zcommandr Zverinfor rMrrrmains>    " " rm__main__)r)r)r)N)r&)!r0rFr*rGrjrrrr Exceptionrr rrrr%r/r9Zpywin.dialogs.statusZpywinrIZdialogsstatusZCStatusProgressDialogr:rTrUrYr[r\rcrmrrrrrs8     $>