-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathsetupWindows.bat
More file actions
151 lines (122 loc) · 5.09 KB
/
setupWindows.bat
File metadata and controls
151 lines (122 loc) · 5.09 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
@echo off
set DLOAD_SCRIPT=download.vbs
set SETUP=cygwinSetup.exe
set SETUP_DIR=windowsSetup
set CYGWIN_PACKAGES=wget,curl,ncurses,make,perl
set CYGWIN_CATEGORIES=Base
set MIRROR=http://cygwin.mirrors.pair.com
set START_PATH=%CD%
GOTO MAIN
:: *****************************
:: * BEGIN Function CHECK_ARCH *
:: * Sets LINK and CYG_PATH *
:: *****************************
:CHECK_ARCH
IF EXIST "%PROGRAMFILES(X86)%" (GOTO 64BIT) ELSE (GOTO 32BIT)
:64BIT
echo Detected 64 bit Windows
echo.
set LINK=https://cygwin.com/setup-x86_64.exe
set CYG_PATH=C:\cygwin64
GOTO:EOF
:32BIT
echo Detected 32 bit Windows
echo.
SET LINK=https://cygwin.com/setup-x86.exe
SET CYG_PATH=C:\cygwin
GOTO:EOF
:: ***************************
:: * END Function CHECK_ARCH *
:: ***************************
:: ********************************
:: * BEGIN Function CREATE_SCRIPT *
:: ********************************
:CREATE_SCRIPT
echo Creating Download script %DLOAD_SCRIPT%
echo Option Explicit > %DLOAD_SCRIPT%
echo Dim args, http, fileSystem, adoStream, url, target, status >> %DLOAD_SCRIPT%
echo. >> %DLOAD_SCRIPT%
echo Set args = Wscript.Arguments >> %DLOAD_SCRIPT%
echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1") >> %DLOAD_SCRIPT%
echo url = args(0) >> %DLOAD_SCRIPT%
echo target = args(1) >> %DLOAD_SCRIPT%
echo WScript.Echo " Getting '" ^& target ^& "' from '" ^& url ^& "'..." >> %DLOAD_SCRIPT%
echo. >> %DLOAD_SCRIPT%
echo http.Open "GET", url, False >> %DLOAD_SCRIPT%
echo http.Send >> %DLOAD_SCRIPT%
echo status = http.Status >> %DLOAD_SCRIPT%
echo. >> %DLOAD_SCRIPT%
echo If status ^<^> 200 Then >> %DLOAD_SCRIPT%
echo WScript.Echo "FAILED to download: HTTP Status " ^& status >> %DLOAD_SCRIPT%
echo WScript.Quit 1 >> %DLOAD_SCRIPT%
echo End If >> %DLOAD_SCRIPT%
echo. >> %DLOAD_SCRIPT%
echo Set adoStream = CreateObject("ADODB.Stream") >> %DLOAD_SCRIPT%
echo adoStream.Open >> %DLOAD_SCRIPT%
echo adoStream.Type = 1 >> %DLOAD_SCRIPT%
echo adoStream.Write http.ResponseBody >> %DLOAD_SCRIPT%
echo adoStream.Position = 0 >> %DLOAD_SCRIPT%
echo. >> %DLOAD_SCRIPT%
echo Set fileSystem = CreateObject("Scripting.FileSystemObject") >> %DLOAD_SCRIPT%
echo If fileSystem.FileExists(target) Then fileSystem.DeleteFile target >> %DLOAD_SCRIPT%
echo adoStream.SaveToFile target >> %DLOAD_SCRIPT%
echo adoStream.Close >> %DLOAD_SCRIPT%
echo. >> %DLOAD_SCRIPT%
GOTO:EOF
:: ******************************
:: * END Function CREATE_SCRIPT *
:: ******************************
:: ***************************
:: * BEGIN Function DOWNLOAD *
:: ***************************
:DOWNLOAD
cscript //Nologo %DLOAD_SCRIPT% "%LINK%" %SETUP%
GOTO:EOF
:: *************************
:: * END Function DOWNLOAD *
:: *************************
:: **************************
:: * BEGIN Function INSTALL *
:: **************************
:INSTALL
IF EXIST "%CD%\%SETUP%" (
echo Installing Cygwin. Please wait...
%SETUP% -P %CYGWIN_PACKAGES% -C %CYGWIN_CATEGORIES% -s %MIRROR% -l %CD% -q
) ELSE (
echo ERROR Downloading %LINK% FAILED!!
GOTO:EOF
)
GOTO:EOF
:: ************************
:: * END Function INSTALL *
:: ************************
:: **********************************
:: * BEGIN Function WAIT_FOR_CYGWIN *
:: **********************************
:WAIT_FOR_CYGWIN
IF EXIST "%CYG_PATH%\Cygwin.bat" (
echo Found %CYG_PATH%\Cygwin.bat
GOTO:EOF
) ELSE (
set /p someVar="Installer (still) working - Press enter when Cygwin is done":
goto WAIT_FOR_CYGWIN
)
GOTO:EOF
:: ********************************
:: * END Function WAIT_FOR_CYGWIN *
:: ********************************
:MAIN
echo.
echo Installing Cygwin
echo =================
echo.
echo Using default and recommended install path C:\cygwin64
IF NOT EXIST %SETUP_DIR% (MKDIR %SETUP_DIR%)
CD %SETUP_DIR%
IF NOT EXIST %DLOAD_SCRIPT% CALL:CREATE_SCRIPT
CALL:CHECK_ARCH
CALL:DOWNLOAD
CALL:INSTALL
CALL:WAIT_FOR_CYGWIN
cd %START_PATH%
generate -uG