a „oe:ã@sÀddlZddlZddlZddlZddlZddlZddlZejj Z ejj   dddd¡dZ dd„Z dd„Zd d „Zd d „Zddd„Zdd„Zdd„Zdd„Zddd„Zedkr¼dZeeddƒdS)éNz&{783CD4E0-9D54-11CF-B8EE-00608CC9A71F}éz vssutil errorcCs$tj d¡}| tjtjtj¡|S)NZ SourceSafe)Úwin32comÚclientZDispatchZOpenÚ pythoncomZMissing)Úss©rúCC:\Program Files\Certbot\pkgs\win32\scripts\VersionStamp\vssutil.pyÚGetSSs r cCs:tƒ}| |¡}| tj¡D]}t|jj|j|jƒqdS©N) r ÚVSSItemÚ GetVersionsÚ constantsÚVSSFLAG_RECURSYESÚprintÚNameZ VersionNumberÚAction)Ú projectNamerÚprojectÚitemrrrÚtests rcCs¤d}t ||¡}g}tt|ƒƒD]p}d}||}|ddkr‚z&t||d|dƒ}| |¡d}Wnt ¡td|ƒYn0|s | |¡q t  t t |ƒd¡S)Nú$réézCould not substituteÚ) ÚstringÚsplitÚrangeÚlenÚevalÚappendÚ tracebackÚ print_excrÚjoinÚmapÚstr)ZinStringÚevalEnvZ substCharÚfieldsZ newFieldsÚiZdidSubstZstrValrrrÚSubstituteInString&s"    r(cCsht|dƒ}zNt|dƒ}z,| ¡}|s&q8| t||ƒ¡qW| ¡n | ¡0W| ¡n | ¡0dS)NÚrÚw)ÚopenÚreadÚwriter(Úclose)ÚinNameÚoutNamer%ZinFileZoutFileÚlinerrrÚSubstituteInFile:s  r2ré–c CsÚg}d}d}| tj¡D]´}|d}||kr0qÎd}} |jdd…dkrLqt|jƒrf|d}|j} n|jj} t| dd…ƒdkr„q|j r˜d||j f}|  d |t   t   t|jƒ¡¡| |f¡||krqÎqt |d ¡S) NrrrrZAddedéüÿÿÿz.dspz %s %sz %s%s %s%sÚ )r r rrrÚLabelr rr$ÚCommentrÚtimeÚasctimeÚ localtimeÚintÚDaterr") rZ linePrefixZnoLabelsZmaxItemsÚlinesÚnumZlabelNumr'Z commentDescZitemDescrrrÚVssLogJs< üÿÿ r?c Cs¢ddl}| |¡| |¡kr$tdƒ‚tƒ}| |¡}d}|jD]}|jr>qZq>tdƒdS|j}t  t  t |j ƒ¡¡} t  t  t ¡¡¡} t ||tƒtƒfƒdS)Nrz2The input and output filenames can not be the samez/Couldnt find a label in the sourcesafe project!)Úwin32apiZGetFullPathNameÚ RuntimeErrorr r ÚVersionsr6rr8r9r:r;r<r2ÚlocalsÚglobals) rr/r0r@Z sourceSaferZlabelÚversionZ vss_labelZvss_dateZnowrrrÚSubstituteVSSInFilels  rFcCs<d}|jtjkr*|jD]}|t|ƒ}qn|jr8|d}|S)Nrr)ÚTyper ZVSSITEM_PROJECTZItemsÚCountCheckoutsZ IsCheckedOut)rr>ÚsubrrrrH‚s  rHcCs6tƒ |¡}d}|jD]}t|jƒ}|r|SqdSr )r r rBr$r6)rr'ZlabrErrrÚGetLastBuildNos    rJc Cs|dur d}tƒ}| |¡}t|ƒ}|dkrVd|}ddl}| ||tj¡tjkrVdSt|ƒ} } | durtd} d} nBz"t   | ¡} |sŒ| d} t | ƒ} Wnt y´t d| ƒ‚Yn0|sèddlm} |  d | d || f¡} | durèdS| | d | |f¡|rtd || fƒ| S) NzCreated by PythonrzGThis project has %d items checked out Do you still want to continue?Ú1zrz/The previous label could not be incremented: %s)ÚdialogzEnter new build numberz %s - Prev: %sz Build %s: %sz Branded project %s with label %s)r r rHÚwin32uiZ MessageBoxÚwin32conZMB_YESNOZIDYESrJrÚatoir$Ú ValueErrorÚerrorZ pywin.mfcrLZGetSimpleInputr6r) rZ buildDescÚautoZbRebrandrr'r>ÚmsgrMZoldBuildZbuildNorLrrrÚMakeNewBuildNo˜sF ÿÿ     ÿrTÚ__main__z\Python\Python Win32 Extensionszd:\src\pythonex\win32\win32.txtzd:\temp\win32.txt)rrr3)Nrr)rr8r rZwin32com.clientrZwin32com.client.gencacherNrr ZgencacheZ EnsureModulerQr rr(r2r?rFrHrJrTÚ__name__ÚtprrrrÚs.  "  +ÿ