@@ -10,7 +10,7 @@ var proxyAgent = require('https-proxy-agent');
10
10
var Promise = require ( 'bluebird' ) ;
11
11
12
12
var platform = os . platform ( ) ;
13
- var arch = os . arch ( ) ;
13
+ var arch = process . env . GECKODRIVER_ARCH || process . env . npm_config_geckodriver_arch || os . arch ( ) ;
14
14
15
15
var skipDownload = process . env . GECKODRIVER_SKIP_DOWNLOAD || process . env . npm_config_geckodriver_skip_download ;
16
16
if ( skipDownload === 'true' ) {
@@ -21,20 +21,29 @@ if (skipDownload === 'true') {
21
21
var baseCDNURL = process . env . GECKODRIVER_CDNURL || process . env . npm_config_geckodriver_cdnurl || 'https://github.com/mozilla/geckodriver/releases/download' ;
22
22
var CACHED_ARCHIVE = process . env . GECKODRIVER_FILEPATH ? path . resolve ( process . env . GECKODRIVER_FILEPATH ) : undefined ;
23
23
24
- var version = process . env . GECKODRIVER_VERSION || process . env . npm_config_geckodriver_version || '0.30 .0' ;
24
+ var version = process . env . GECKODRIVER_VERSION || process . env . npm_config_geckodriver_version || '0.32 .0' ;
25
25
26
26
// Remove trailing slash if included
27
27
baseCDNURL = baseCDNURL . replace ( / \/ + $ / , '' ) ;
28
28
29
29
var baseDownloadUrl = baseCDNURL + '/v' + version + '/geckodriver-v' + version ;
30
30
var DOWNLOAD_MAC = baseDownloadUrl + '-macos.tar.gz' ;
31
+ var DOWNLOAD_MAC_ARM64 = baseDownloadUrl + '-macos-aarch64.tar.gz' ;
32
+
33
+ var DOWNLOAD_LINUX_ARM64 = baseDownloadUrl + '-linux-aarch64.tar.gz' ;
31
34
var DOWNLOAD_LINUX64 = baseDownloadUrl + '-linux64.tar.gz' ;
32
35
var DOWNLOAD_LINUX32 = baseDownloadUrl + '-linux32.tar.gz' ;
36
+
37
+ var DOWNLOAD_WIN_ARM64 = baseDownloadUrl + '-win-aarch64.zip' ;
33
38
var DOWNLOAD_WIN32 = baseDownloadUrl + '-win32.zip' ;
34
39
var DOWNLOAD_WIN64 = baseDownloadUrl + '-win64.zip' ;
35
40
36
41
// TODO: move this to package.json or something
37
42
var downloadUrl = DOWNLOAD_MAC ;
43
+ if ( arch === 'arm64' ) {
44
+ downloadUrl = DOWNLOAD_MAC_ARM64 ;
45
+ }
46
+
38
47
var outFile = 'geckodriver.tar.gz' ;
39
48
var executable = 'geckodriver' ;
40
49
@@ -45,12 +54,29 @@ if (proxy !== null) {
45
54
}
46
55
47
56
if ( platform === 'linux' ) {
48
- downloadUrl = arch === 'x64' ? DOWNLOAD_LINUX64 : DOWNLOAD_LINUX32 ;
57
+ switch ( arch ) {
58
+ case 'arm64' :
59
+ downloadUrl = DOWNLOAD_LINUX_ARM64 ;
60
+ break ;
61
+ case 'x64' :
62
+ downloadUrl = DOWNLOAD_LINUX64 ;
63
+ break ;
64
+ default :
65
+ downloadUrl = DOWNLOAD_LINUX32 ;
66
+ }
49
67
}
50
68
51
69
if ( platform === 'win32' ) {
52
- // No 32-bits of geckodriver for now
53
- downloadUrl = arch === 'x64' ? DOWNLOAD_WIN64 : DOWNLOAD_WIN32 ;
70
+ switch ( arch ) {
71
+ case 'arm64' :
72
+ downloadUrl = DOWNLOAD_WIN_ARM64 ;
73
+ break ;
74
+ case 'x64' :
75
+ downloadUrl = DOWNLOAD_WIN64 ;
76
+ break ;
77
+ default :
78
+ downloadUrl = DOWNLOAD_WIN32 ;
79
+ }
54
80
outFile = 'geckodriver.zip' ;
55
81
executable = 'geckodriver.exe' ;
56
82
}
0 commit comments