System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact ca6a9d7a97f70de087b9b98a6919d3b0666570fc:


0000: 40 45 43 48 4f 20 4f 46 46 0d 0a 0d 0a 3a 3a 0d  @ECHO OFF....::.
0010: 0a 3a 3a 20 61 72 63 68 69 76 65 2e 62 61 74 20  .:: archive.bat 
0020: 2d 2d 0d 0a 3a 3a 0d 0a 3a 3a 20 53 6f 75 72 63  --..::..:: Sourc
0030: 65 20 41 72 63 68 69 76 69 6e 67 20 54 6f 6f 6c  e Archiving Tool
0040: 0d 0a 3a 3a 0d 0a 3a 3a 20 57 72 69 74 74 65 6e  ..::..:: Written
0050: 20 62 79 20 4a 6f 65 20 4d 69 73 74 61 63 68 6b   by Joe Mistachk
0060: 69 6e 2e 0d 0a 3a 3a 20 52 65 6c 65 61 73 65 64  in...:: Released
0070: 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 64   to the public d
0080: 6f 6d 61 69 6e 2c 20 75 73 65 20 61 74 20 79 6f  omain, use at yo
0090: 75 72 20 6f 77 6e 20 72 69 73 6b 21 0d 0a 3a 3a  ur own risk!..::
00a0: 0d 0a 0d 0a 53 45 54 4c 4f 43 41 4c 0d 0a 0d 0a  ....SETLOCAL....
00b0: 52 45 4d 20 53 45 54 20 5f 5f 45 43 48 4f 3d 45  REM SET __ECHO=E
00c0: 43 48 4f 0d 0a 52 45 4d 20 53 45 54 20 5f 5f 45  CHO..REM SET __E
00d0: 43 48 4f 32 3d 45 43 48 4f 0d 0a 49 46 20 4e 4f  CHO2=ECHO..IF NO
00e0: 54 20 44 45 46 49 4e 45 44 20 5f 41 45 43 48 4f  T DEFINED _AECHO
00f0: 20 28 53 45 54 20 5f 41 45 43 48 4f 3d 52 45 4d   (SET _AECHO=REM
0100: 29 0d 0a 49 46 20 4e 4f 54 20 44 45 46 49 4e 45  )..IF NOT DEFINE
0110: 44 20 5f 43 45 43 48 4f 20 28 53 45 54 20 5f 43  D _CECHO (SET _C
0120: 45 43 48 4f 3d 52 45 4d 29 0d 0a 49 46 20 4e 4f  ECHO=REM)..IF NO
0130: 54 20 44 45 46 49 4e 45 44 20 5f 56 45 43 48 4f  T DEFINED _VECHO
0140: 20 28 53 45 54 20 5f 56 45 43 48 4f 3d 52 45 4d   (SET _VECHO=REM
0150: 29 0d 0a 0d 0a 25 5f 41 45 43 48 4f 25 20 52 75  )....%_AECHO% Ru
0160: 6e 6e 69 6e 67 20 25 30 20 25 2a 0d 0a 0d 0a 53  nning %0 %*....S
0170: 45 54 20 44 55 4d 4d 59 32 3d 25 31 0d 0a 0d 0a  ET DUMMY2=%1....
0180: 49 46 20 44 45 46 49 4e 45 44 20 44 55 4d 4d 59  IF DEFINED DUMMY
0190: 32 20 28 0d 0a 20 20 47 4f 54 4f 20 75 73 61 67  2 (..  GOTO usag
01a0: 65 0d 0a 29 0d 0a 0d 0a 53 45 54 20 52 4f 4f 54  e..)....SET ROOT
01b0: 3d 25 7e 64 70 30 5c 2e 2e 0d 0a 53 45 54 20 52  =%~dp0\....SET R
01c0: 4f 4f 54 3d 25 52 4f 4f 54 3a 5c 5c 3d 5c 25 0d  OOT=%ROOT:\\=\%.
01d0: 0a 0d 0a 53 45 54 20 54 4f 4f 4c 53 3d 25 7e 64  ...SET TOOLS=%~d
01e0: 70 30 0d 0a 53 45 54 20 54 4f 4f 4c 53 3d 25 54  p0..SET TOOLS=%T
01f0: 4f 4f 4c 53 3a 7e 30 2c 2d 31 25 0d 0a 0d 0a 25  OOLS:~0,-1%....%
0200: 5f 56 45 43 48 4f 25 20 52 6f 6f 74 20 3d 20 27  _VECHO% Root = '
0210: 25 52 4f 4f 54 25 27 0d 0a 25 5f 56 45 43 48 4f  %ROOT%'..%_VECHO
0220: 25 20 54 6f 6f 6c 73 20 3d 20 27 25 54 4f 4f 4c  % Tools = '%TOOL
0230: 53 25 27 0d 0a 0d 0a 43 41 4c 4c 20 3a 66 6e 5f  S%'....CALL :fn_
0240: 52 65 73 65 74 45 72 72 6f 72 4c 65 76 65 6c 0d  ResetErrorLevel.
0250: 0a 0d 0a 25 5f 5f 45 43 48 4f 32 25 20 50 55 53  ...%__ECHO2% PUS
0260: 48 44 20 22 25 52 4f 4f 54 25 22 0d 0a 0d 0a 49  HD "%ROOT%"....I
0270: 46 20 45 52 52 4f 52 4c 45 56 45 4c 20 31 20 28  F ERRORLEVEL 1 (
0280: 0d 0a 20 20 45 43 48 4f 20 43 6f 75 6c 64 20 6e  ..  ECHO Could n
0290: 6f 74 20 63 68 61 6e 67 65 20 64 69 72 65 63 74  ot change direct
02a0: 6f 72 79 20 74 6f 20 22 25 52 4f 4f 54 25 22 2e  ory to "%ROOT%".
02b0: 0d 0a 20 20 47 4f 54 4f 20 65 72 72 6f 72 73 0d  ..  GOTO errors.
02c0: 0a 29 0d 0a 0d 0a 46 4f 52 20 2f 46 20 22 64 65  .)....FOR /F "de
02d0: 6c 69 6d 73 3d 22 20 25 25 56 20 49 4e 20 28 27  lims=" %%V IN ('
02e0: 54 59 50 45 20 53 79 73 74 65 6d 2e 44 61 74 61  TYPE System.Data
02f0: 2e 53 51 4c 69 74 65 5c 41 73 73 65 6d 62 6c 79  .SQLite\Assembly
0300: 49 6e 66 6f 2e 63 73 20 5e 7c 20 66 69 6e 64 2e  Info.cs ^| find.
0310: 65 78 65 20 22 41 73 73 65 6d 62 6c 79 56 65 72  exe "AssemblyVer
0320: 73 69 6f 6e 22 27 29 20 44 4f 20 28 0d 0a 20 20  sion"') DO (..  
0330: 53 45 54 20 56 45 52 53 49 4f 4e 3d 25 25 56 0d  SET VERSION=%%V.
0340: 0a 29 0d 0a 0d 0a 49 46 20 4e 4f 54 20 44 45 46  .)....IF NOT DEF
0350: 49 4e 45 44 20 56 45 52 53 49 4f 4e 20 28 0d 0a  INED VERSION (..
0360: 20 20 53 45 54 20 56 45 52 53 49 4f 4e 3d 31 2e    SET VERSION=1.
0370: 30 2e 30 2e 30 0d 0a 20 20 47 4f 54 4f 20 73 6b  0.0.0..  GOTO sk
0380: 69 70 5f 6d 75 6e 67 65 56 65 72 73 69 6f 6e 0d  ip_mungeVersion.
0390: 0a 29 0d 0a 0d 0a 52 45 4d 0d 0a 52 45 4d 20 4e  .)....REM..REM N
03a0: 4f 54 45 3a 20 53 74 72 69 70 20 6f 66 66 20 61  OTE: Strip off a
03b0: 6c 6c 20 74 68 65 20 65 78 74 72 61 20 73 74 75  ll the extra stu
03c0: 66 66 20 66 72 6f 6d 20 74 68 65 20 41 73 73 65  ff from the Asse
03d0: 6d 62 6c 79 56 65 72 73 69 6f 6e 20 6c 69 6e 65  mblyVersion line
03e0: 20 77 65 20 66 6f 75 6e 64 0d 0a 52 45 4d 20 20   we found..REM  
03f0: 20 20 20 20 20 69 6e 20 74 68 65 20 41 73 73 65       in the Asse
0400: 6d 62 6c 79 49 6e 66 6f 2e 63 73 20 66 69 6c 65  mblyInfo.cs file
0410: 20 74 68 61 74 20 77 65 20 64 6f 20 6e 6f 74 20   that we do not 
0420: 6e 65 65 64 20 28 69 2e 65 2e 20 65 76 65 72 79  need (i.e. every
0430: 74 68 69 6e 67 0d 0a 52 45 4d 20 20 20 20 20 20  thing..REM      
0440: 20 65 78 63 65 70 74 20 74 68 65 20 72 61 77 20   except the raw 
0450: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 69  version number i
0460: 74 73 65 6c 66 29 2e 0d 0a 52 45 4d 0d 0a 53 45  tself)...REM..SE
0470: 54 20 56 45 52 53 49 4f 4e 3d 25 56 45 52 53 49  T VERSION=%VERSI
0480: 4f 4e 3a 28 3d 25 0d 0a 53 45 54 20 56 45 52 53  ON:(=%..SET VERS
0490: 49 4f 4e 3d 25 56 45 52 53 49 4f 4e 3a 29 3d 25  ION=%VERSION:)=%
04a0: 0d 0a 53 45 54 20 56 45 52 53 49 4f 4e 3d 25 56  ..SET VERSION=%V
04b0: 45 52 53 49 4f 4e 3a 5b 3d 25 0d 0a 53 45 54 20  ERSION:[=%..SET 
04c0: 56 45 52 53 49 4f 4e 3d 25 56 45 52 53 49 4f 4e  VERSION=%VERSION
04d0: 3a 5d 3d 25 0d 0a 53 45 54 20 56 45 52 53 49 4f  :]=%..SET VERSIO
04e0: 4e 3d 25 56 45 52 53 49 4f 4e 3a 20 3d 25 0d 0a  N=%VERSION: =%..
04f0: 53 45 54 20 56 45 52 53 49 4f 4e 3d 25 56 45 52  SET VERSION=%VER
0500: 53 49 4f 4e 3a 61 73 73 65 6d 62 6c 79 3a 3d 25  SION:assembly:=%
0510: 0d 0a 53 45 54 20 56 45 52 53 49 4f 4e 3d 25 56  ..SET VERSION=%V
0520: 45 52 53 49 4f 4e 3a 41 73 73 65 6d 62 6c 79 56  ERSION:AssemblyV
0530: 65 72 73 69 6f 6e 3d 25 0d 0a 53 45 54 20 56 45  ersion=%..SET VE
0540: 52 53 49 4f 4e 3d 25 56 45 52 53 49 4f 4e 3a 22  RSION=%VERSION:"
0550: 3d 25 0d 0a 52 45 4d 20 22 0d 0a 0d 0a 3a 73 6b  =%..REM "....:sk
0560: 69 70 5f 6d 75 6e 67 65 56 65 72 73 69 6f 6e 0d  ip_mungeVersion.
0570: 0a 0d 0a 25 5f 56 45 43 48 4f 25 20 56 65 72 73  ...%_VECHO% Vers
0580: 69 6f 6e 20 3d 20 27 25 56 45 52 53 49 4f 4e 25  ion = '%VERSION%
0590: 27 0d 0a 0d 0a 43 41 4c 4c 20 3a 66 6e 5f 52 65  '....CALL :fn_Re
05a0: 73 65 74 45 72 72 6f 72 4c 65 76 65 6c 0d 0a 0d  setErrorLevel...
05b0: 0a 49 46 20 4e 4f 54 20 45 58 49 53 54 20 53 65  .IF NOT EXIST Se
05c0: 74 75 70 5c 4f 75 74 70 75 74 20 28 0d 0a 20 20  tup\Output (..  
05d0: 25 5f 5f 45 43 48 4f 25 20 4d 4b 44 49 52 20 53  %__ECHO% MKDIR S
05e0: 65 74 75 70 5c 4f 75 74 70 75 74 0d 0a 0d 0a 20  etup\Output.... 
05f0: 20 49 46 20 45 52 52 4f 52 4c 45 56 45 4c 20 31   IF ERRORLEVEL 1
0600: 20 28 0d 0a 20 20 20 20 45 43 48 4f 20 43 6f 75   (..    ECHO Cou
0610: 6c 64 20 6e 6f 74 20 63 72 65 61 74 65 20 64 69  ld not create di
0620: 72 65 63 74 6f 72 79 20 22 53 65 74 75 70 5c 4f  rectory "Setup\O
0630: 75 74 70 75 74 22 2e 0d 0a 20 20 20 20 47 4f 54  utput"...    GOT
0640: 4f 20 65 72 72 6f 72 73 0d 0a 20 20 29 0d 0a 29  O errors..  )..)
0650: 0d 0a 0d 0a 49 46 20 44 45 46 49 4e 45 44 20 41  ....IF DEFINED A
0660: 52 43 48 49 56 45 5f 46 55 4c 4c 20 28 0d 0a 20  RCHIVE_FULL (.. 
0670: 20 53 45 54 20 45 58 43 4c 55 44 45 5f 53 52 43   SET EXCLUDE_SRC
0680: 3d 40 64 61 74 61 5c 65 78 63 6c 75 64 65 5f 66  =@data\exclude_f
0690: 75 6c 6c 5f 73 72 63 2e 74 78 74 0d 0a 20 20 53  ull_src.txt..  S
06a0: 45 54 20 50 52 45 46 49 58 3d 73 71 6c 69 74 65  ET PREFIX=sqlite
06b0: 2d 6e 65 74 46 78 2d 66 75 6c 6c 2d 73 6f 75 72  -netFx-full-sour
06c0: 63 65 0d 0a 29 20 45 4c 53 45 20 28 0d 0a 20 20  ce..) ELSE (..  
06d0: 53 45 54 20 45 58 43 4c 55 44 45 5f 53 52 43 3d  SET EXCLUDE_SRC=
06e0: 40 64 61 74 61 5c 65 78 63 6c 75 64 65 5f 73 72  @data\exclude_sr
06f0: 63 2e 74 78 74 0d 0a 20 20 53 45 54 20 50 52 45  c.txt..  SET PRE
0700: 46 49 58 3d 73 71 6c 69 74 65 2d 6e 65 74 46 78  FIX=sqlite-netFx
0710: 2d 73 6f 75 72 63 65 0d 0a 29 0d 0a 0d 0a 25 5f  -source..)....%_
0720: 5f 45 43 48 4f 25 20 7a 69 70 2e 65 78 65 20 2d  _ECHO% zip.exe -
0730: 76 20 2d 72 20 22 53 65 74 75 70 5c 4f 75 74 70  v -r "Setup\Outp
0740: 75 74 5c 25 50 52 45 46 49 58 25 2d 25 56 45 52  ut\%PREFIX%-%VER
0750: 53 49 4f 4e 25 2e 7a 69 70 22 20 2a 20 2d 78 20  SION%.zip" * -x 
0760: 22 25 45 58 43 4c 55 44 45 5f 53 52 43 25 22 0d  "%EXCLUDE_SRC%".
0770: 0a 0d 0a 49 46 20 45 52 52 4f 52 4c 45 56 45 4c  ...IF ERRORLEVEL
0780: 20 31 20 28 0d 0a 20 20 45 43 48 4f 20 46 61 69   1 (..  ECHO Fai
0790: 6c 65 64 20 74 6f 20 61 72 63 68 69 76 65 20 73  led to archive s
07a0: 6f 75 72 63 65 20 66 69 6c 65 73 2e 0d 0a 20 20  ource files...  
07b0: 47 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 29 0d 0a  GOTO errors..)..
07c0: 0d 0a 25 5f 5f 45 43 48 4f 32 25 20 50 4f 50 44  ..%__ECHO2% POPD
07d0: 0d 0a 0d 0a 49 46 20 45 52 52 4f 52 4c 45 56 45  ....IF ERRORLEVE
07e0: 4c 20 31 20 28 0d 0a 20 20 45 43 48 4f 20 43 6f  L 1 (..  ECHO Co
07f0: 75 6c 64 20 6e 6f 74 20 72 65 73 74 6f 72 65 20  uld not restore 
0800: 64 69 72 65 63 74 6f 72 79 2e 0d 0a 20 20 47 4f  directory...  GO
0810: 54 4f 20 65 72 72 6f 72 73 0d 0a 29 0d 0a 0d 0a  TO errors..)....
0820: 47 4f 54 4f 20 6e 6f 5f 65 72 72 6f 72 73 0d 0a  GOTO no_errors..
0830: 0d 0a 3a 66 6e 5f 52 65 73 65 74 45 72 72 6f 72  ..:fn_ResetError
0840: 4c 65 76 65 6c 0d 0a 20 20 56 45 52 49 46 59 20  Level..  VERIFY 
0850: 3e 20 4e 55 4c 0d 0a 20 20 47 4f 54 4f 20 3a 45  > NUL..  GOTO :E
0860: 4f 46 0d 0a 0d 0a 3a 66 6e 5f 53 65 74 45 72 72  OF....:fn_SetErr
0870: 6f 72 4c 65 76 65 6c 0d 0a 20 20 56 45 52 49 46  orLevel..  VERIF
0880: 59 20 4d 41 59 42 45 20 32 3e 20 4e 55 4c 0d 0a  Y MAYBE 2> NUL..
0890: 20 20 47 4f 54 4f 20 3a 45 4f 46 0d 0a 0d 0a 3a    GOTO :EOF....:
08a0: 75 73 61 67 65 0d 0a 20 20 45 43 48 4f 2e 0d 0a  usage..  ECHO...
08b0: 20 20 45 43 48 4f 20 55 73 61 67 65 3a 20 25 7e    ECHO Usage: %~
08c0: 6e 78 30 0d 0a 20 20 45 43 48 4f 2e 0d 0a 20 20  nx0..  ECHO...  
08d0: 47 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 0d 0a 3a  GOTO errors....:
08e0: 65 72 72 6f 72 73 0d 0a 20 20 43 41 4c 4c 20 3a  errors..  CALL :
08f0: 66 6e 5f 53 65 74 45 72 72 6f 72 4c 65 76 65 6c  fn_SetErrorLevel
0900: 0d 0a 20 20 45 4e 44 4c 4f 43 41 4c 0d 0a 20 20  ..  ENDLOCAL..  
0910: 45 43 48 4f 2e 0d 0a 20 20 45 43 48 4f 20 41 72  ECHO...  ECHO Ar
0920: 63 68 69 76 65 20 66 61 69 6c 75 72 65 2c 20 65  chive failure, e
0930: 72 72 6f 72 73 20 77 65 72 65 20 65 6e 63 6f 75  rrors were encou
0940: 6e 74 65 72 65 64 2e 0d 0a 20 20 47 4f 54 4f 20  ntered...  GOTO 
0950: 65 6e 64 5f 6f 66 5f 66 69 6c 65 0d 0a 0d 0a 3a  end_of_file....:
0960: 6e 6f 5f 65 72 72 6f 72 73 0d 0a 20 20 43 41 4c  no_errors..  CAL
0970: 4c 20 3a 66 6e 5f 52 65 73 65 74 45 72 72 6f 72  L :fn_ResetError
0980: 4c 65 76 65 6c 0d 0a 20 20 45 4e 44 4c 4f 43 41  Level..  ENDLOCA
0990: 4c 0d 0a 20 20 45 43 48 4f 2e 0d 0a 20 20 45 43  L..  ECHO...  EC
09a0: 48 4f 20 41 72 63 68 69 76 65 20 73 75 63 63 65  HO Archive succe
09b0: 73 73 2c 20 6e 6f 20 65 72 72 6f 72 73 20 77 65  ss, no errors we
09c0: 72 65 20 65 6e 63 6f 75 6e 74 65 72 65 64 2e 0d  re encountered..
09d0: 0a 20 20 47 4f 54 4f 20 65 6e 64 5f 6f 66 5f 66  .  GOTO end_of_f
09e0: 69 6c 65 0d 0a 0d 0a 3a 65 6e 64 5f 6f 66 5f 66  ile....:end_of_f
09f0: 69 6c 65 0d 0a 25 5f 5f 45 43 48 4f 25 20 45 58  ile..%__ECHO% EX
0a00: 49 54 20 2f 42 20 25 45 52 52 4f 52 4c 45 56 45  IT /B %ERRORLEVE
0a10: 4c 25 0d 0a                                      L%..