mirror of
https://github.com/Koenkk/zigbee-OTA.git
synced 2026-10-06 19:07:40 +00:00
Handle redirects. https://github.com/Koenkk/zigbee-OTA/issues/114
This commit is contained in:
+13
-7
@@ -41,14 +41,20 @@ const main = async () => {
|
|||||||
const lib = url.toLowerCase().startsWith("https") ? require('https') : require('http');
|
const lib = url.toLowerCase().startsWith("https") ? require('https') : require('http');
|
||||||
const file = fs.createWriteStream(path);
|
const file = fs.createWriteStream(path);
|
||||||
|
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve, reject) => {
|
||||||
const request = lib.get(url, function(response) {
|
const request = lib.get(url, function(response) {
|
||||||
response.pipe(file);
|
if (response.statusCode >= 200 && response.statusCode < 300) {
|
||||||
file.on('finish', function() {
|
response.pipe(file);
|
||||||
file.close(function() {
|
file.on('finish', function() {
|
||||||
resolve();
|
file.close(function() {
|
||||||
});
|
resolve();
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
} else if (response.headers.location) {
|
||||||
|
resolve(downloadFile(response.headers.location, path));
|
||||||
|
} else {
|
||||||
|
reject(new Error(response.statusCode + ' ' + response.statusMessage));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user