mirror of
https://github.com/bitwarden/browser
synced 2025-12-13 06:43:35 +00:00
update self
This commit is contained in:
14
package-lock.json
generated
14
package-lock.json
generated
@@ -4,6 +4,15 @@
|
|||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"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": {
|
"@types/commander": {
|
||||||
"version": "2.12.2",
|
"version": "2.12.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/commander/-/commander-2.12.2.tgz",
|
"resolved": "https://registry.npmjs.org/@types/commander/-/commander-2.12.2.tgz",
|
||||||
@@ -108,6 +117,11 @@
|
|||||||
"acorn": "5.5.3"
|
"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": {
|
"ajv": {
|
||||||
"version": "6.5.0",
|
"version": "6.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz",
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
"assets": "./build/**/*"
|
"assets": "./build/**/*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/adm-zip": "^0.4.31",
|
||||||
"@types/commander": "^2.12.2",
|
"@types/commander": "^2.12.2",
|
||||||
"@types/form-data": "^2.2.1",
|
"@types/form-data": "^2.2.1",
|
||||||
"@types/lowdb": "^1.0.1",
|
"@types/lowdb": "^1.0.1",
|
||||||
@@ -64,6 +65,7 @@
|
|||||||
"webpack": "^3.10.0"
|
"webpack": "^3.10.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"adm-zip": "0.4.11",
|
||||||
"chalk": "2.4.1",
|
"chalk": "2.4.1",
|
||||||
"commander": "2.15.1",
|
"commander": "2.15.1",
|
||||||
"form-data": "2.3.2",
|
"form-data": "2.3.2",
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import * as AdmZip from 'adm-zip';
|
||||||
import * as program from 'commander';
|
import * as program from 'commander';
|
||||||
import * as fetch from 'node-fetch';
|
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;
|
res.title = 'A new version is available: ' + tagName;
|
||||||
if (downloadUrl == null) {
|
if (downloadUrl == null) {
|
||||||
downloadUrl = 'https://github.com/bitwarden/cli/releases';
|
downloadUrl = 'https://github.com/bitwarden/cli/releases';
|
||||||
} else {
|
} else {
|
||||||
res.raw = downloadUrl;
|
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 ' +
|
'If you installed this CLI through a package manager ' +
|
||||||
'you should probably update using its update command instead.';
|
'you should probably update using its update command instead.';
|
||||||
return Response.success(res);
|
return Response.success(res);
|
||||||
|
|||||||
@@ -466,6 +466,7 @@ export class Program {
|
|||||||
program
|
program
|
||||||
.command('update')
|
.command('update')
|
||||||
.description('Check for updates.')
|
.description('Check for updates.')
|
||||||
|
.option('--self', 'Attempt to automatically update self.')
|
||||||
.on('--help', () => {
|
.on('--help', () => {
|
||||||
writeLn('\n Notes:');
|
writeLn('\n Notes:');
|
||||||
writeLn('');
|
writeLn('');
|
||||||
@@ -477,9 +478,10 @@ export class Program {
|
|||||||
writeLn('');
|
writeLn('');
|
||||||
writeLn(' bw update');
|
writeLn(' bw update');
|
||||||
writeLn(' bw update --raw');
|
writeLn(' bw update --raw');
|
||||||
|
writeLn(' bw update --self');
|
||||||
writeLn('', true);
|
writeLn('', true);
|
||||||
})
|
})
|
||||||
.action(async (object, id, cmd) => {
|
.action(async (cmd) => {
|
||||||
const command = new UpdateCommand(this.main.platformUtilsService);
|
const command = new UpdateCommand(this.main.platformUtilsService);
|
||||||
const response = await command.run(cmd);
|
const response = await command.run(cmd);
|
||||||
this.processResponse(response);
|
this.processResponse(response);
|
||||||
|
|||||||
Reference in New Issue
Block a user