1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-12 22:33:35 +00:00

update self

This commit is contained in:
Kyle Spearrin
2018-05-22 17:36:54 -04:00
parent 2f2a18d9ae
commit 276affd8eb
4 changed files with 45 additions and 2 deletions

14
package-lock.json generated
View File

@@ -4,6 +4,15 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@types/adm-zip": {
"version": "0.4.31",
"resolved": "https://registry.npmjs.org/@types/adm-zip/-/adm-zip-0.4.31.tgz",
"integrity": "sha1-ozdrn6j0xunAeMF20t8srreTneM=",
"dev": true,
"requires": {
"@types/node": "10.0.8"
}
},
"@types/commander": {
"version": "2.12.2",
"resolved": "https://registry.npmjs.org/@types/commander/-/commander-2.12.2.tgz",
@@ -108,6 +117,11 @@
"acorn": "5.5.3"
}
},
"adm-zip": {
"version": "0.4.11",
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz",
"integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA=="
},
"ajv": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz",

View File

@@ -44,6 +44,7 @@
"assets": "./build/**/*"
},
"devDependencies": {
"@types/adm-zip": "^0.4.31",
"@types/commander": "^2.12.2",
"@types/form-data": "^2.2.1",
"@types/lowdb": "^1.0.1",
@@ -64,6 +65,7 @@
"webpack": "^3.10.0"
},
"dependencies": {
"adm-zip": "0.4.11",
"chalk": "2.4.1",
"commander": "2.15.1",
"form-data": "2.3.2",

View File

@@ -1,3 +1,4 @@
import * as AdmZip from 'adm-zip';
import * as program from 'commander';
import * as fetch from 'node-fetch';
@@ -49,13 +50,37 @@ export class UpdateCommand {
}
}
if (cmd.self || false) {
const zipResponse = await fetch.default(downloadUrl);
if (zipResponse.status === 200) {
try {
const zipBuffer = await zipResponse.buffer();
const zip = new AdmZip(zipBuffer);
zip.extractAllTo(__dirname, true);
res.title = 'Updated self to ' + tagName + '.';
if (responseJson.body != null && responseJson.body !== '') {
res.message = responseJson.body;
}
return Response.success(res);
} catch {
return Response.error('Error extracting update to ' + __dirname);
}
} else {
return Response.error('Error downloading update: ' + zipResponse.status);
}
}
res.title = 'A new version is available: ' + tagName;
if (downloadUrl == null) {
downloadUrl = 'https://github.com/bitwarden/cli/releases';
} else {
res.raw = downloadUrl;
}
res.message = 'You can download this update at: ' + downloadUrl + '\n' +
res.message = '';
if (responseJson.body != null && responseJson.body !== '') {
res.message = responseJson.body + '\n\n';
}
res.message += 'You can download this update at: ' + downloadUrl + '\n' +
'If you installed this CLI through a package manager ' +
'you should probably update using its update command instead.';
return Response.success(res);

View File

@@ -466,6 +466,7 @@ export class Program {
program
.command('update')
.description('Check for updates.')
.option('--self', 'Attempt to automatically update self.')
.on('--help', () => {
writeLn('\n Notes:');
writeLn('');
@@ -477,9 +478,10 @@ export class Program {
writeLn('');
writeLn(' bw update');
writeLn(' bw update --raw');
writeLn(' bw update --self');
writeLn('', true);
})
.action(async (object, id, cmd) => {
.action(async (cmd) => {
const command = new UpdateCommand(this.main.platformUtilsService);
const response = await command.run(cmd);
this.processResponse(response);