Skip to content

Commit e5f498a

Browse files
committed
Fix npm download to use HTML page instead of API
Fixes: #740 Signed-off-by: Alex Ellis (OpenFaaS Ltd) <[email protected]>
1 parent 73004c2 commit e5f498a

File tree

4 files changed

+23
-9
lines changed

4 files changed

+23
-9
lines changed

Diff for: npm/.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/.bin
2+
/node_modules/**
3+
faas-cli

Diff for: npm/install.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ module.exports.install = async () => {
1616
del.sync(dest, { force: true });
1717

1818
try {
19-
let releases = await lib.getReleases();
20-
let release = releases.find(release => release.name === name);
21-
let url = release && release.browser_download_url;
19+
20+
let releaseURL = await lib.getRelease()
21+
let downloadURL = releaseURL.replace("tag", "download") +"/"+ binaryName;
22+
23+
let url = downloadURL;
2224

2325
console.log(`Downloading package ${url} to ${dest}`);
2426
await lib.download(url, dest);
@@ -41,4 +43,4 @@ module.exports.init = () => {
4143
console.error(err.message);
4244
process.exit(1);
4345
});
44-
}
46+
}

Diff for: npm/lib.js

+13-4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,19 @@ module.exports = {
3535
let extname = suffix === '.exe' ? '.exe' : '';
3636
return `faas-cli${extname}`;
3737
},
38+
getRelease() {
39+
return new Promise(async (resolve, reject)=> {
40+
let latestURL = "https://github.com/openfaas/faas-cli/releases/latest"
41+
let location = ""
42+
try {
43+
await axios({url:latestURL, maxRedirects:0});
44+
}catch (e){
45+
location = e.response.headers.location;
46+
}
47+
48+
return resolve(location);
49+
})
50+
},
3851
download(url, dest) {
3952
return new Promise(async (resolve, reject) => {
4053
let ws = fs.createWriteStream(dest);
@@ -47,10 +60,6 @@ module.exports = {
4760
});
4861
});
4962
},
50-
getReleases() {
51-
return axios.get(`https://api.github.com/repos/openfaas/faas-cli/releases/tags/${pkg.version}`)
52-
.then(res => res.data.assets);
53-
},
5463
async cmd(...args) {
5564
let { stdout, stderr } = await exec(...args);
5665
if (stdout) console.log(stdout);

Diff for: npm/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@openfaas/faas-cli",
3-
"version": "0.9.3",
3+
"version": "0.11.3-2",
44
"description": "OpenFaaS CLI",
55
"main": "index.js",
66
"bin": {

0 commit comments

Comments
 (0)