From 02886b266c34a333b4825738c9f53e413ae2b22f Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Thu, 17 May 2018 00:07:44 -0400 Subject: [PATCH] config command --- src/commands/config.command.ts | 31 +++++++++++++++++++++++++++++++ src/program.ts | 21 +++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 src/commands/config.command.ts diff --git a/src/commands/config.command.ts b/src/commands/config.command.ts new file mode 100644 index 0000000000..02585f99ab --- /dev/null +++ b/src/commands/config.command.ts @@ -0,0 +1,31 @@ +import * as program from 'commander'; + +import { EnvironmentService } from 'jslib/abstractions/environment.service'; + +import { Response } from '../models/response'; +import { MessageResponse } from '../models/response/messageResponse'; + +export class ConfigCommand { + constructor(private environmentService: EnvironmentService) { } + + async run(setting: string, value: string, cmd: program.Command): Promise { + setting = setting.toLowerCase(); + switch (setting) { + case 'server': + await this.setServer(value); + break; + default: + return Response.badRequest('Unknown setting.'); + } + + const res = new MessageResponse('Saved setting `' + setting + '`.', null); + return Response.success(res); + } + + private async setServer(url: string) { + url = (url === 'null' || url === 'bitwarden.com' || url === 'https://bitwarden.com' ? null : url); + await this.environmentService.setUrls({ + base: url, + }); + } +} diff --git a/src/program.ts b/src/program.ts index b0af4a916a..7f0b1bc1c8 100644 --- a/src/program.ts +++ b/src/program.ts @@ -3,6 +3,7 @@ import * as program from 'commander'; import { Main } from './bw'; +import { ConfigCommand } from './commands/config.command'; import { CreateCommand } from './commands/create.command'; import { DeleteCommand } from './commands/delete.command'; import { EditCommand } from './commands/edit.command'; @@ -386,6 +387,26 @@ export class Program { this.processResponse(response); }); + program + .command('config ') + .description('Configure settings.') + .on('--help', () => { + writeLn('\n Settings:'); + writeLn(''); + writeLn(' server - On-premise hosted installation URL.'); + writeLn(''); + writeLn(' Examples:'); + writeLn(''); + writeLn(' bw config server https://bw.company.com'); + writeLn(' bw config server bitwarden.com'); + writeLn(''); + }) + .action(async (setting, value, cmd) => { + const command = new ConfigCommand(this.main.environmentService); + const response = await command.run(setting, value, cmd); + this.processResponse(response); + }); + program .command('update') .description('Check for updates.')