| 
									
										
										
										
											2010-07-22 02:46:11 +00:00
										 |  |  | set wshShell	= CreateObject("WScript.Shell") | 
					
						
							| 
									
										
										
										
											2010-08-08 16:34:32 +00:00
										 |  |  | outfile			= "./Src/svnrev.h" | 
					
						
							|  |  |  | svncmd			= "SubWCRev ../../.. ./Src/svnrev_template.h " & outfile | 
					
						
							| 
									
										
										
										
											2010-08-07 21:22:15 +00:00
										 |  |  | svntestcmd		= "SubWCRev ../../.." | 
					
						
							| 
									
										
										
										
											2010-07-22 02:46:11 +00:00
										 |  |  | hgcmd			= "hg svn info" | 
					
						
							| 
									
										
										
										
											2010-08-07 21:22:15 +00:00
										 |  |  | const svn		= 0 | 
					
						
							|  |  |  | const hg		= 1 | 
					
						
							| 
									
										
										
										
											2010-07-22 02:46:11 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-07 21:22:15 +00:00
										 |  |  | set oFS			= CreateObject("Scripting.fileSystemObject") | 
					
						
							|  |  |  | if not oFS.FileExists(outfile) then | 
					
						
							|  |  |  | 	oFS.CreateTextFile(outfile) | 
					
						
							|  |  |  | 	file_rev	= 0 | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	set oFile	= oFS.OpenTextFile(outfile) | 
					
						
							|  |  |  | 	set re		= new regexp | 
					
						
							|  |  |  | 	re.pattern	= "[0-9]+" | 
					
						
							|  |  |  | 	file_rev	= re.execute(oFile.readline)(0) | 
					
						
							|  |  |  | end if | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set testexec	= wshShell.exec(svntestcmd) | 
					
						
							|  |  |  | do while testexec.status = 0 : wscript.sleep 100 : loop | 
					
						
							|  |  |  | if testexec.exitcode = 0 then | 
					
						
							|  |  |  | 	testout		= testexec.stdout.readall | 
					
						
							|  |  |  | 	set re		= new regexp | 
					
						
							| 
									
										
										
										
											2010-08-07 23:18:43 +00:00
										 |  |  | 	re.pattern	= "Last committed at revision [0-9]+" | 
					
						
							| 
									
										
										
										
											2010-08-08 00:54:04 +00:00
										 |  |  | 	cur_rev		= split(re.execute(testout)(0))(4) | 
					
						
							| 
									
										
										
										
											2010-08-07 21:22:15 +00:00
										 |  |  | 	cur_cms		= svn | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	set hgexec	= wshShell.exec(hgcmd) | 
					
						
							| 
									
										
										
										
											2010-07-22 02:46:11 +00:00
										 |  |  | 	do while hgexec.status = 0 : wscript.sleep 100 : loop | 
					
						
							|  |  |  | 	do while true | 
					
						
							|  |  |  | 		line = hgexec.stdout.readline | 
					
						
							|  |  |  | 		if instr(line, "Revision") then | 
					
						
							| 
									
										
										
										
											2010-08-07 21:22:15 +00:00
										 |  |  | 			cur_rev = split(line)(1) | 
					
						
							|  |  |  | 			cur_cms	= hg | 
					
						
							| 
									
										
										
										
											2010-07-22 02:46:11 +00:00
										 |  |  | 			exit do | 
					
						
							|  |  |  | 		end if | 
					
						
							|  |  |  | 		if hgexec.stdout.atEndofStream then | 
					
						
							|  |  |  | 			wscript.echo "Neither SVN or Hg revision info found!" | 
					
						
							|  |  |  | 			wscript.quit 1 | 
					
						
							|  |  |  | 		end if | 
					
						
							|  |  |  | 	loop | 
					
						
							|  |  |  | end if | 
					
						
							| 
									
										
										
										
											2010-08-07 21:22:15 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if file_rev = cur_rev then | 
					
						
							|  |  |  | 	wscript.echo "svnrev.h doesn't need updating" | 
					
						
							|  |  |  | 	wscript.quit 0 | 
					
						
							|  |  |  | elseif cur_cms = svn then | 
					
						
							|  |  |  | 	ret = wshShell.run(svncmd, 0, true) | 
					
						
							|  |  |  | elseif cur_cms = hg then | 
					
						
							|  |  |  | 	set oFile = CreateObject("Scripting.fileSystemObject").CreateTextFile(outfile, true) | 
					
						
							|  |  |  | 	oFile.writeline("#define SVN_REV_STR """ & cur_rev & """") | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	wscript.echo "WTF, shouldn't be here!" | 
					
						
							|  |  |  | end if |