Skip to content

Commit 8ea121f

Browse files
committed
feat: add alias functionality to all commands
1 parent 9309ac1 commit 8ea121f

6 files changed

Lines changed: 104 additions & 0 deletions

File tree

src/cli/conn/conn-alias-add.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { frodo } from '@rockcarver/frodo-lib';
2+
3+
import { printError, printMessage } from '../../utils/Console';
4+
import { FrodoCommand } from '../FrodoCommand';
5+
import { ConnectionsFileInterface } from '@rockcarver/frodo-lib/types/ops/ConnectionProfileOps';
6+
7+
function checkConnectionAlias(
8+
connectionProfiles: ConnectionsFileInterface,
9+
alias: string
10+
): string | null {
11+
for (const tenant in connectionProfiles) {
12+
if (connectionProfiles[tenant].alias === alias) {
13+
return tenant;
14+
}
15+
}
16+
return null;
17+
}
18+
19+
export default function setup() {
20+
const program = new FrodoCommand('frodo conn alias add', [
21+
'realm',
22+
'options',
23+
'username',
24+
'password',
25+
'type',
26+
'insecure',
27+
'curlirize',
28+
]);
29+
30+
program
31+
.description('Add connection profile alias.')
32+
.argument('alias', 'Alias name for this connection profile.')
33+
.action(
34+
async (alias: any, host: string, options: any, command: FrodoCommand) => {
35+
command.handleDefaultArgsAndOpts(alias, host, options, command);
36+
try {
37+
frodo.conn.setConnectionProfileAlias(host, alias);
38+
} catch (error) {
39+
printError(error);
40+
}
41+
}
42+
);
43+
44+
return program;
45+
}

src/cli/conn/conn-alias-delete.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { frodo } from '@rockcarver/frodo-lib';
2+
3+
import { printError, printMessage } from '../../utils/Console';
4+
import { FrodoCommand } from '../FrodoCommand';
5+
6+
export default function setup() {
7+
const program = new FrodoCommand('frodo conn alias delete', [
8+
'realm',
9+
'options',
10+
'username',
11+
'password',
12+
'type',
13+
'insecure',
14+
'curlirize',
15+
]);
16+
17+
program
18+
.description('Delete connection profile alias.')
19+
.action(async (host: string, options: any, command: FrodoCommand) => {
20+
// console.log({ host, alias, options })
21+
command.handleDefaultArgsAndOpts(host, options, command);
22+
try {
23+
frodo.conn.deleteConnectionProfileAlias(host);
24+
} catch (error) {
25+
printError(error);
26+
}
27+
});
28+
29+
return program;
30+
}

src/cli/conn/conn-alias.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { FrodoStubCommand } from '../FrodoCommand';
2+
import AddCmd from './conn-alias-add.js';
3+
import DeleteCmd from './conn-alias-delete.js';
4+
5+
export default function setup() {
6+
const program = new FrodoStubCommand('frodo alias');
7+
8+
program.description('Manage connection aliases.');
9+
10+
program.addCommand(
11+
AddCmd().name('add').description('add connection profile alias.')
12+
);
13+
14+
program.addCommand(
15+
DeleteCmd().name('delete').description('Delete connection profile alias.')
16+
);
17+
18+
return program;
19+
}

src/cli/conn/conn-save.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ export default function setup() {
5050
'Map of headers: {"host":"am.example.com:8081"}.'
5151
)
5252
)
53+
.addOption(
54+
new Option('--alias [name]', 'Alias name for this connection profile.')
55+
)
5356
.addHelpText(
5457
'after',
5558
`Usage Examples:\n` +
@@ -103,6 +106,9 @@ export default function setup() {
103106
verboseMessage(
104107
`Saving connection profile for tenant ${state.getHost()}...`
105108
);
109+
if (options.alias) {
110+
state.setAlias(options.alias);
111+
}
106112
// if cloud deployment add service account
107113
if (
108114
options.validate &&

src/cli/conn/conn.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { FrodoStubCommand } from '../FrodoCommand';
2+
import AliasCmd from './conn-alias.js'
23
import DeleteCmd from './conn-delete.js';
34
import DescribeCmd from './conn-describe.js';
45
import ListCmd from './conn-list.js';
@@ -13,6 +14,8 @@ export default function setup() {
1314

1415
program.addCommand(SaveCmd().name('save'));
1516

17+
program.addCommand(AliasCmd().name('alias'));
18+
1619
program.addCommand(DeleteCmd().name('delete'));
1720

1821
program.addCommand(DescribeCmd().name('describe'));

src/ops/ConnectionProfileOps.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ export async function describeConnectionProfile(
130130
}
131131
const keyMap = {
132132
tenant: 'Host',
133+
alias: 'Alias',
133134
deploymentType: 'Deployment Type',
134135
username: 'Username',
135136
password: 'Password',

0 commit comments

Comments
 (0)