@@ -155,17 +155,32 @@ protected function _exit($statusCode = 0)
155
155
private function downloadNewPhar (OutputInterface $ output , string $ remoteUrl , string $ tempFilename )
156
156
{
157
157
$ progressBar = new ProgressBar ($ output );
158
- $ progressBar ->setFormat ('[%bar%] %current% downloaded ' );
158
+ $ progressBar ->setFormat ('[%bar%] %current% of %max% bytes downloaded ' );
159
159
160
160
$ hooks = new Hooks ();
161
+
162
+ $ response = Requests::head ($ remoteUrl , [], ['verify ' => false ]);
163
+
164
+ if (!$ response ->success ) {
165
+ throw new RuntimeException ('Cannot download phar file: ' . $ response ->status_code );
166
+ }
167
+
168
+ $ filesize = $ response ->headers ['content-length ' ];
169
+
170
+ $ hooks ->register ('curl.after_request ' , function (&$ headers , &$ info ) use (&$ filesize ) {
171
+ $ filesize = $ info ['size_download ' ];
172
+ });
173
+
174
+ $ progressBar ->setMaxSteps ($ filesize );
175
+
161
176
$ hooks ->register (
162
177
'request.progress ' ,
163
178
function ($ data , $ responseBytes , $ responseByteLimit ) use ($ progressBar ) {
164
179
$ progressBar ->setProgress ($ responseBytes );
165
180
}
166
181
);
167
182
168
- $ response = Requests::get ($ remoteUrl , [], ['hooks ' => $ hooks , 'verify ' => false ]);
183
+ $ response = Requests::get ($ remoteUrl , [], ['blocking ' => true , ' hooks ' => $ hooks , 'verify ' => false ]);
169
184
170
185
if (!$ response ->success ) {
171
186
throw new RuntimeException ('Cannot download phar file: ' . $ response ->status_code );
0 commit comments