-
Notifications
You must be signed in to change notification settings - Fork 14
/
_updateCQFTooling.bat
100 lines (88 loc) · 2.99 KB
/
_updateCQFTooling.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
@ECHO OFF
REM Necessary for the prompting of 'create' and 'overwrite' variables as, without this, they will be expanded immediately to '' and promptig will have no effect.
setlocal EnableDelayedExpansion
SET "dlurl=https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&g=org.opencds.cqf&a=tooling&v=1.4.0&c=jar-with-dependencies"
SET tooling_jar=tooling-1.4.0-jar-with-dependencies.jar
SET input_cache_path=%~dp0input-cache\
SET skipPrompts=false
IF "%~1"=="/f" SET skipPrompts=true
FOR %%x IN ("%CD%") DO SET upper_path=%%~dpx
IF NOT EXIST "%input_cache_path%%tooling_jar%" (
IF NOT EXIST "%upper_path%%tooling_jar%" (
SET jarlocation=%input_cache_path%%tooling_jar%
SET jarlocationname=Input Cache
ECHO IG Refresh is not yet in input-cache or parent folder.
REM we don't use jarlocation below because it will be empty because we're in a bracketed if statement
GOTO create
) ELSE (
ECHO IG RefreshFOUND in parent folder
SET jarlocation=%upper_path%%tooling_jar%
SET jarlocationname=Parent folder
GOTO:upgrade
)
) ELSE (
ECHO IG Refresh FOUND in input-cache
SET jarlocation=%input_cache_path%%tooling_jar%
SET jarlocationname=Input Cache
GOTO:upgrade
)
:create
ECHO Will place refresh jar here: %input_cache_path%%tooling_jar%
IF "%skipPrompts%"=="false" (
SET /p create="Ok? (Y/N)"
IF /I "!create!"=="Y" (
ECHO Creating refresh jar
MKDIR "%input_cache_path%" 2> NUL
GOTO:download
) ELSE (
ECHO Skipping create
GOTO:done
)
) ELSE (
ECHO Prompting disabled, creating refresh jar
MKDIR "%input_cache_path%" 2> NUL
GOTO:download
)
GOTO:done
:upgrade
IF "%skipPrompts%"=="false" (
SET /p overwrite="Overwrite %jarlocation%? (Y/N)"
IF /I "!overwrite!"=="Y" (
ECHO Overwriting existing jar
GOTO:download
) ELSE (
ECHO Skipping download as it would overwrite existing jar
GOTO:done
)
) ELSE (
ECHO Prompting disabled, overwriting refresh jar
GOTO:download
)
GOTO:done
:download
ECHO Downloading most recent refresh to %jarlocationname% - it's ~70 MB, so this may take a bit
FOR /f "tokens=4-5 delims=. " %%i IN ('ver') DO SET VERSION=%%i.%%j
IF "%version%" == "10.0" GOTO win10
IF "%version%" == "6.3" GOTO win8.1
IF "%version%" == "6.2" GOTO win8
IF "%version%" == "6.1" GOTO win7
IF "%version%" == "6.0" GOTO vista
ECHO Unrecognized version: %version%
GOTO done
:win10
POWERSHELL -command "if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile('%dlurl%','%jarlocation%') } else { Invoke-WebRequest -Uri '%dlurl%' -Outfile '%jarlocation%' }"
ECHO Download complete.
GOTO done
:win7
bitsadmin /transfer GetRefresh /download /priority normal "%dlurl%" "%jarlocation%"
ECHO Download complete.
GOTO done
:win8.1
:win8
:vista
ECHO "This script does not yet support Windows %winver%. Please ask for help on https://chat.fhir.org/#narrow/stream/179207-connectathon-mgmt/topic/Clinical.20Reasoning.20Track"
GOTO done
:done
IF "%skipPrompts%"=="false" (
PAUSE
)