@mittwald/cli 1.0.0-alpha.21 → 1.0.0-alpha.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +145 -163
- package/dist/esm/Translator.js +2 -1
- package/dist/esm/commands/app/copy.js +1 -1
- package/dist/esm/commands/app/{install → create}/node.d.ts +3 -2
- package/dist/esm/commands/app/create/node.js +13 -0
- package/dist/esm/commands/app/{install → create}/php.d.ts +3 -2
- package/dist/esm/commands/app/create/php.js +13 -0
- package/dist/esm/commands/app/dependency/update.js +2 -2
- package/dist/esm/commands/app/dependency/versions.js +1 -1
- package/dist/esm/commands/app/list.js +6 -1
- package/dist/esm/commands/app/ssh.d.ts +11 -0
- package/dist/esm/commands/app/ssh.js +46 -0
- package/dist/esm/commands/app/uninstall.js +1 -1
- package/dist/esm/commands/app/versions.js +1 -1
- package/dist/esm/commands/conversation/close.js +1 -1
- package/dist/esm/commands/conversation/create.js +1 -1
- package/dist/esm/commands/conversation/reply.js +1 -1
- package/dist/esm/commands/conversation/show.js +2 -2
- package/dist/esm/commands/conversation/show2.js +1 -3
- package/dist/esm/commands/database/mysql/charsets.js +1 -3
- package/dist/esm/commands/database/mysql/create.js +3 -3
- package/dist/esm/commands/database/mysql/delete.js +1 -1
- package/dist/esm/commands/database/mysql/get.js +1 -1
- package/dist/esm/commands/database/mysql/list.js +1 -1
- package/dist/esm/commands/database/mysql/phpmyadmin.js +2 -2
- package/dist/esm/commands/database/mysql/user/get.js +1 -1
- package/dist/esm/commands/database/mysql/user/list.js +1 -3
- package/dist/esm/commands/database/redis/create.js +2 -2
- package/dist/esm/commands/database/redis/get.js +1 -1
- package/dist/esm/commands/database/redis/list.js +1 -1
- package/dist/esm/commands/domain/list.js +1 -3
- package/dist/esm/commands/domain/ownership/list.js +1 -1
- package/dist/esm/commands/domain/virtualhost/create.js +2 -2
- package/dist/esm/commands/domain/virtualhost/delete.js +1 -1
- package/dist/esm/commands/domain/virtualhost/get.js +4 -4
- package/dist/esm/commands/domain/virtualhost/list.js +1 -1
- package/dist/esm/commands/mail/address/create.js +1 -1
- package/dist/esm/commands/mail/address/delete.js +1 -1
- package/dist/esm/commands/mail/address/list.js +1 -3
- package/dist/esm/commands/mail/deliverybox/list.d.ts +11 -4
- package/dist/esm/commands/mail/deliverybox/list.js +13 -8
- package/dist/esm/commands/org/delete.js +1 -1
- package/dist/esm/commands/org/get.js +2 -2
- package/dist/esm/commands/org/invite/list-own.js +1 -1
- package/dist/esm/commands/org/invite/list.js +1 -1
- package/dist/esm/commands/org/invite/revoke.js +2 -2
- package/dist/esm/commands/org/invite.js +1 -1
- package/dist/esm/commands/org/list.js +1 -3
- package/dist/esm/commands/org/membership/list-own.js +2 -4
- package/dist/esm/commands/org/membership/list.d.ts +1 -0
- package/dist/esm/commands/org/membership/list.js +2 -2
- package/dist/esm/commands/org/membership/revoke.js +3 -3
- package/dist/esm/commands/project/backup/create.js +2 -2
- package/dist/esm/commands/project/backup/delete.js +1 -1
- package/dist/esm/commands/project/backup/download.js +3 -3
- package/dist/esm/commands/project/backup/list.js +1 -1
- package/dist/esm/commands/project/backupschedule/list.js +1 -1
- package/dist/esm/commands/project/create.js +2 -2
- package/dist/esm/commands/project/cronjob/execution/get.js +1 -1
- package/dist/esm/commands/project/cronjob/execution/list.js +1 -3
- package/dist/esm/commands/project/cronjob/execution/logs.js +4 -3
- package/dist/esm/commands/project/cronjob/list.js +1 -3
- package/dist/esm/commands/project/delete.js +1 -1
- package/dist/esm/commands/project/filesystem/usage.js +2 -2
- package/dist/esm/commands/project/get.js +4 -4
- package/dist/esm/commands/project/membership/list.js +1 -1
- package/dist/esm/commands/project/ssh.js +1 -1
- package/dist/esm/commands/user/api-token/revoke.js +1 -1
- package/dist/esm/commands/user/get.d.ts +14 -2
- package/dist/esm/commands/user/get.js +19 -5
- package/dist/esm/commands/user/ssh-key/delete.js +1 -1
- package/dist/esm/generated/conversation/getCategory.js +1 -1
- package/dist/esm/generated/conversation/getConversation.js +1 -1
- package/dist/esm/generated/conversation/listCategories.js +1 -3
- package/dist/esm/generated/conversation/listConversations.js +1 -3
- package/dist/esm/generated/conversation/listMessagesByConversation.js +1 -3
- package/dist/esm/generated/cronjob/getCronjob.js +1 -1
- package/dist/esm/generated/cronjob/getExecution.js +1 -1
- package/dist/esm/generated/domain/dnsZoneGetSpecific.js +1 -1
- package/dist/esm/generated/domain/dnsZonesForProject.js +1 -1
- package/dist/esm/generated/domain/getDomain.js +1 -1
- package/dist/esm/generated/domain/getHandleFields.js +1 -1
- package/dist/esm/generated/domain/getSpecificDomainOwnership.js +1 -1
- package/dist/esm/generated/file/getFile.js +1 -1
- package/dist/esm/generated/file/getFileMeta.js +1 -1
- package/dist/esm/generated/file/getFileTokenRules.js +1 -1
- package/dist/esm/generated/file/getFileTypeRules.js +1 -1
- package/dist/esm/generated/mail/deliveryboxGetSpecific.js +1 -1
- package/dist/esm/generated/mail/mailaddressGetSpecific.js +1 -1
- package/dist/esm/generated/mail/mailaddressList.js +1 -3
- package/dist/esm/generated/mail/projectsettingGetSpecific.js +1 -1
- package/dist/esm/generated/notification/newsletterGetInfo.js +1 -1
- package/dist/esm/generated/notification/scountUnreadNotifications.js +1 -1
- package/dist/esm/generated/notification/slistNotifications.js +1 -3
- package/dist/esm/generated/project/getProject.js +1 -1
- package/dist/esm/generated/project/getProjectInvite.js +1 -1
- package/dist/esm/generated/project/getProjectMembership.js +1 -1
- package/dist/esm/generated/project/getSelfMembershipForProject.js +1 -1
- package/dist/esm/generated/project/getServer.js +1 -1
- package/dist/esm/generated/project/listInvitesForProject.js +1 -3
- package/dist/esm/generated/project/listMembershipsForProject.js +1 -3
- package/dist/esm/generated/project/listProjectInvites.js +1 -3
- package/dist/esm/generated/project/listProjectMemberships.js +1 -3
- package/dist/esm/generated/project/listProjects.js +1 -3
- package/dist/esm/generated/project/listServers.js +1 -3
- package/dist/esm/generated/sshsftpUser/sftpUserGetSftpUser.js +1 -1
- package/dist/esm/generated/sshsftpUser/sftpUserListSftpUsers.js +1 -3
- package/dist/esm/generated/sshsftpUser/sshUserGetSshUser.js +1 -1
- package/dist/esm/generated/sshsftpUser/sshUserListSshUsers.js +1 -3
- package/dist/esm/generated/user/getApiToken.js +1 -1
- package/dist/esm/generated/user/getPersonalizedSettings.js +1 -1
- package/dist/esm/generated/user/getSession.js +1 -1
- package/dist/esm/generated/user/getSshKey.js +1 -1
- package/dist/esm/generated/user/listApiTokens.js +1 -3
- package/dist/esm/generated/user/listFeedback.js +1 -3
- package/dist/esm/generated/user/listSessions.js +1 -3
- package/dist/esm/generated/user/listSshKeys.js +1 -3
- package/dist/esm/lib/app/Installer.d.ts +1 -1
- package/dist/esm/lib/app/Installer.js +2 -2
- package/dist/esm/lib/app/flags.d.ts +1 -0
- package/dist/esm/lib/app/flags.js +6 -0
- package/dist/esm/lib/app/hooks.js +7 -8
- package/dist/esm/lib/app/install.js +24 -1
- package/dist/esm/lib/app/uuid.js +2 -1
- package/dist/esm/lib/app/versions.js +2 -6
- package/dist/esm/lib/app/wait.js +1 -1
- package/dist/esm/lib/database/common.js +1 -1
- package/dist/esm/lib/database/mysql/connect.js +2 -2
- package/dist/esm/lib/database/mysql/flags.js +1 -1
- package/dist/esm/lib/database/redis/connect.js +1 -1
- package/dist/esm/lib/database/redis/flags.js +1 -1
- package/dist/esm/lib/project/hooks.js +1 -1
- package/dist/esm/lib/project/ingress.js +1 -1
- package/dist/esm/lib/project/shortId.js +1 -1
- package/dist/esm/lib/projectbackup/hooks.js +2 -2
- package/dist/esm/rendering/lib/getTerminalWidth.d.ts +1 -1
- package/dist/esm/rendering/lib/getTerminalWidth.js +1 -1
- package/dist/esm/rendering/react/RenderBaseCommand.js +5 -1
- package/dist/esm/rendering/react/components/AppInstallation/AppInstallationDetails.js +6 -2
- package/dist/esm/rendering/react/components/Conversation/ConversationMeta.js +1 -3
- package/dist/esm/rendering/react/components/Table/model/Column.d.ts +1 -1
- package/dist/esm/rendering/react/components/Table/model/Column.js +5 -2
- package/dist/esm/rendering/react/components/Table/model/ColumnOptions.js +1 -1
- package/dist/esm/rendering/react/hooks/useIncreaseInkStdoutColumns.d.ts +1 -0
- package/dist/esm/rendering/react/hooks/useIncreaseInkStdoutColumns.js +9 -0
- package/dist/esm/rendering/react/hooks/useMyUserProfile.js +1 -3
- package/dist/esm/rendering/react/measure/MeasureContextProvider.js +6 -2
- package/package.json +5 -7
- package/dist/esm/commands/app/install/node.js +0 -13
- package/dist/esm/commands/app/install/php.js +0 -13
- package/dist/esm/commands/domain/tld/get.d.ts +0 -3
- package/dist/esm/commands/domain/tld/get.js +0 -6
- package/dist/esm/commands/domain/tld/list.d.ts +0 -9
- package/dist/esm/commands/domain/tld/list.js +0 -6
- package/dist/esm/generated/domain/getToplevelDomain.d.ts +0 -16
- package/dist/esm/generated/domain/getToplevelDomain.js +0 -25
- package/dist/esm/generated/domain/listToplevelDomains.d.ts +0 -13
- package/dist/esm/generated/domain/listToplevelDomains.js +0 -17
- package/dist/esm/generated/mail/deliveryboxList.d.ts +0 -13
- package/dist/esm/generated/mail/deliveryboxList.js +0 -24
- package/dist/esm/generated/user/getUser.d.ts +0 -14
- package/dist/esm/generated/user/getUser.js +0 -16
package/README.md
CHANGED
|
@@ -80,6 +80,8 @@ USAGE
|
|
|
80
80
|
|
|
81
81
|
<!-- commands -->
|
|
82
82
|
* [`mw app copy INSTALLATION-ID`](#mw-app-copy-installation-id)
|
|
83
|
+
* [`mw app create node`](#mw-app-create-node)
|
|
84
|
+
* [`mw app create php`](#mw-app-create-php)
|
|
83
85
|
* [`mw app dependency list`](#mw-app-dependency-list)
|
|
84
86
|
* [`mw app dependency update INSTALLATION-ID`](#mw-app-dependency-update-installation-id)
|
|
85
87
|
* [`mw app dependency versions SYSTEMSOFTWARE`](#mw-app-dependency-versions-systemsoftware)
|
|
@@ -87,13 +89,12 @@ USAGE
|
|
|
87
89
|
* [`mw app install contao`](#mw-app-install-contao)
|
|
88
90
|
* [`mw app install joomla`](#mw-app-install-joomla)
|
|
89
91
|
* [`mw app install matomo`](#mw-app-install-matomo)
|
|
90
|
-
* [`mw app install node`](#mw-app-install-node)
|
|
91
|
-
* [`mw app install php`](#mw-app-install-php)
|
|
92
92
|
* [`mw app install shopware5`](#mw-app-install-shopware5)
|
|
93
93
|
* [`mw app install shopware6`](#mw-app-install-shopware6)
|
|
94
94
|
* [`mw app install typo3`](#mw-app-install-typo3)
|
|
95
95
|
* [`mw app install wordpress`](#mw-app-install-wordpress)
|
|
96
96
|
* [`mw app list`](#mw-app-list)
|
|
97
|
+
* [`mw app ssh INSTALLATION-ID`](#mw-app-ssh-installation-id)
|
|
97
98
|
* [`mw app uninstall INSTALLATION-ID`](#mw-app-uninstall-installation-id)
|
|
98
99
|
* [`mw app versions [APP]`](#mw-app-versions-app)
|
|
99
100
|
* [`mw context get`](#mw-context-get)
|
|
@@ -129,8 +130,6 @@ USAGE
|
|
|
129
130
|
* [`mw domain list`](#mw-domain-list)
|
|
130
131
|
* [`mw domain ownership get DOMAINOWNERSHIPID`](#mw-domain-ownership-get-domainownershipid)
|
|
131
132
|
* [`mw domain ownership list`](#mw-domain-ownership-list)
|
|
132
|
-
* [`mw domain tld get TLD`](#mw-domain-tld-get-tld)
|
|
133
|
-
* [`mw domain tld list`](#mw-domain-tld-list)
|
|
134
133
|
* [`mw domain virtualhost create`](#mw-domain-virtualhost-create)
|
|
135
134
|
* [`mw domain virtualhost delete VIRTUAL-HOST-ID`](#mw-domain-virtualhost-delete-virtual-host-id)
|
|
136
135
|
* [`mw domain virtualhost get INGRESS-ID`](#mw-domain-virtualhost-get-ingress-id)
|
|
@@ -189,7 +188,7 @@ USAGE
|
|
|
189
188
|
* [`mw user api-token get APITOKENID`](#mw-user-api-token-get-apitokenid)
|
|
190
189
|
* [`mw user api-token list`](#mw-user-api-token-list)
|
|
191
190
|
* [`mw user api-token revoke ID`](#mw-user-api-token-revoke-id)
|
|
192
|
-
* [`mw user get`](#mw-user-get)
|
|
191
|
+
* [`mw user get USER-ID`](#mw-user-get-user-id)
|
|
193
192
|
* [`mw user session get TOKENID`](#mw-user-session-get-tokenid)
|
|
194
193
|
* [`mw user session list`](#mw-user-session-list)
|
|
195
194
|
* [`mw user ssh-key create`](#mw-user-ssh-key-create)
|
|
@@ -222,6 +221,91 @@ FLAG DESCRIPTIONS
|
|
|
222
221
|
scripts), you can use this flag to easily get the IDs of created resources for further processing.
|
|
223
222
|
```
|
|
224
223
|
|
|
224
|
+
## `mw app create node`
|
|
225
|
+
|
|
226
|
+
Creates new custom Node.js installation.
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
USAGE
|
|
230
|
+
$ mw app create node [-p <value>] [-q] [--site-title <value>] [-w] [--json]
|
|
231
|
+
|
|
232
|
+
FLAGS
|
|
233
|
+
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the
|
|
234
|
+
context
|
|
235
|
+
-q, --quiet suppress process output and only display a machine-readable summary.
|
|
236
|
+
-w, --wait Wait for your custom Node.js to be ready.
|
|
237
|
+
--json
|
|
238
|
+
--site-title=<value> Site Title for your custom Node.js installation.
|
|
239
|
+
|
|
240
|
+
DESCRIPTION
|
|
241
|
+
Creates new custom Node.js installation.
|
|
242
|
+
|
|
243
|
+
FLAG DESCRIPTIONS
|
|
244
|
+
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
245
|
+
|
|
246
|
+
May contain a short ID or a full ID of a project; you can also use the "mw context set --project-id=<VALUE>" command
|
|
247
|
+
to persistently set a default project for all commands that accept this flag.
|
|
248
|
+
|
|
249
|
+
-q, --quiet suppress process output and only display a machine-readable summary.
|
|
250
|
+
|
|
251
|
+
This flag controls if you want to see the process output or only a summary. When using mw non-interactively (e.g. in
|
|
252
|
+
scripts), you can use this flag to easily get the IDs of created resources for further processing.
|
|
253
|
+
|
|
254
|
+
--site-title=<value> Site Title for your custom Node.js installation.
|
|
255
|
+
|
|
256
|
+
Site Title which will be displayed in the Tab and at the top of the Frontend of your custom Node.js installation.
|
|
257
|
+
It is also the Title shown in the App-Overview in the mStudio.
|
|
258
|
+
If none is given the Software Name and the given Project will be used. The Title can be changed after the
|
|
259
|
+
installation is finished
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## `mw app create php`
|
|
263
|
+
|
|
264
|
+
Creates new custom PHP installation.
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
USAGE
|
|
268
|
+
$ mw app create php --document-root <value> [-p <value>] [-q] [--site-title <value>] [-w] [--json]
|
|
269
|
+
|
|
270
|
+
FLAGS
|
|
271
|
+
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the
|
|
272
|
+
context
|
|
273
|
+
-q, --quiet suppress process output and only display a machine-readable summary.
|
|
274
|
+
-w, --wait Wait for your custom PHP to be ready.
|
|
275
|
+
--document-root=<value> (required) [default: /] The document root from which your custom PHP will be served
|
|
276
|
+
(relative to the installation path)
|
|
277
|
+
--json
|
|
278
|
+
--site-title=<value> Site Title for your custom PHP installation.
|
|
279
|
+
|
|
280
|
+
DESCRIPTION
|
|
281
|
+
Creates new custom PHP installation.
|
|
282
|
+
|
|
283
|
+
FLAG DESCRIPTIONS
|
|
284
|
+
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
285
|
+
|
|
286
|
+
May contain a short ID or a full ID of a project; you can also use the "mw context set --project-id=<VALUE>" command
|
|
287
|
+
to persistently set a default project for all commands that accept this flag.
|
|
288
|
+
|
|
289
|
+
-q, --quiet suppress process output and only display a machine-readable summary.
|
|
290
|
+
|
|
291
|
+
This flag controls if you want to see the process output or only a summary. When using mw non-interactively (e.g. in
|
|
292
|
+
scripts), you can use this flag to easily get the IDs of created resources for further processing.
|
|
293
|
+
|
|
294
|
+
--document-root=<value>
|
|
295
|
+
|
|
296
|
+
The document root from which your custom PHP will be served (relative to the installation path)
|
|
297
|
+
|
|
298
|
+
This is the document root from which the files of your application will be served by the web server. This directory
|
|
299
|
+
is specified relative to the installation path.
|
|
300
|
+
|
|
301
|
+
--site-title=<value> Site Title for your custom PHP installation.
|
|
302
|
+
|
|
303
|
+
Site Title which will be displayed in the Tab and at the top of the Frontend of your custom PHP installation.
|
|
304
|
+
It is also the Title shown in the App-Overview in the mStudio.
|
|
305
|
+
If none is given the Software Name and the given Project will be used. The Title can be changed after the
|
|
306
|
+
installation is finished
|
|
307
|
+
```
|
|
308
|
+
|
|
225
309
|
## `mw app dependency list`
|
|
226
310
|
|
|
227
311
|
Get all available dependencies
|
|
@@ -330,7 +414,7 @@ DESCRIPTION
|
|
|
330
414
|
|
|
331
415
|
## `mw app install contao`
|
|
332
416
|
|
|
333
|
-
Creates new Contao
|
|
417
|
+
Creates new Contao installation.
|
|
334
418
|
|
|
335
419
|
```
|
|
336
420
|
USAGE
|
|
@@ -354,7 +438,7 @@ FLAGS
|
|
|
354
438
|
--version=<value> (required) [default: latest] Version of Contao to be installed.
|
|
355
439
|
|
|
356
440
|
DESCRIPTION
|
|
357
|
-
Creates new Contao
|
|
441
|
+
Creates new Contao installation.
|
|
358
442
|
|
|
359
443
|
FLAG DESCRIPTIONS
|
|
360
444
|
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
@@ -420,7 +504,7 @@ FLAG DESCRIPTIONS
|
|
|
420
504
|
|
|
421
505
|
## `mw app install joomla`
|
|
422
506
|
|
|
423
|
-
Creates new Joomla!
|
|
507
|
+
Creates new Joomla! installation.
|
|
424
508
|
|
|
425
509
|
```
|
|
426
510
|
USAGE
|
|
@@ -444,7 +528,7 @@ FLAGS
|
|
|
444
528
|
--version=<value> (required) [default: latest] Version of Joomla! to be installed.
|
|
445
529
|
|
|
446
530
|
DESCRIPTION
|
|
447
|
-
Creates new Joomla!
|
|
531
|
+
Creates new Joomla! installation.
|
|
448
532
|
|
|
449
533
|
FLAG DESCRIPTIONS
|
|
450
534
|
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
@@ -510,7 +594,7 @@ FLAG DESCRIPTIONS
|
|
|
510
594
|
|
|
511
595
|
## `mw app install matomo`
|
|
512
596
|
|
|
513
|
-
Creates new Matomo
|
|
597
|
+
Creates new Matomo installation.
|
|
514
598
|
|
|
515
599
|
```
|
|
516
600
|
USAGE
|
|
@@ -531,7 +615,7 @@ FLAGS
|
|
|
531
615
|
--version=<value> (required) [default: latest] Version of Matomo to be installed.
|
|
532
616
|
|
|
533
617
|
DESCRIPTION
|
|
534
|
-
Creates new Matomo
|
|
618
|
+
Creates new Matomo installation.
|
|
535
619
|
|
|
536
620
|
FLAG DESCRIPTIONS
|
|
537
621
|
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
@@ -583,97 +667,9 @@ FLAG DESCRIPTIONS
|
|
|
583
667
|
If none is given the Matomo will be installed in the latest available version.
|
|
584
668
|
```
|
|
585
669
|
|
|
586
|
-
## `mw app install node`
|
|
587
|
-
|
|
588
|
-
Creates new Node.js Project Installation.
|
|
589
|
-
|
|
590
|
-
```
|
|
591
|
-
USAGE
|
|
592
|
-
$ mw app install node --version <value> [-p <value>] [-q] [--site-title <value>] [-w] [--json]
|
|
593
|
-
|
|
594
|
-
FLAGS
|
|
595
|
-
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the
|
|
596
|
-
context
|
|
597
|
-
-q, --quiet suppress process output and only display a machine-readable summary.
|
|
598
|
-
-w, --wait Wait for your Node.js Project to be ready.
|
|
599
|
-
--json
|
|
600
|
-
--site-title=<value> Site Title for your Node.js Project installation.
|
|
601
|
-
--version=<value> (required) [default: latest] Version of Node.js Project to be installed.
|
|
602
|
-
|
|
603
|
-
DESCRIPTION
|
|
604
|
-
Creates new Node.js Project Installation.
|
|
605
|
-
|
|
606
|
-
FLAG DESCRIPTIONS
|
|
607
|
-
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
608
|
-
|
|
609
|
-
May contain a short ID or a full ID of a project; you can also use the "mw context set --project-id=<VALUE>" command
|
|
610
|
-
to persistently set a default project for all commands that accept this flag.
|
|
611
|
-
|
|
612
|
-
-q, --quiet suppress process output and only display a machine-readable summary.
|
|
613
|
-
|
|
614
|
-
This flag controls if you want to see the process output or only a summary. When using mw non-interactively (e.g. in
|
|
615
|
-
scripts), you can use this flag to easily get the IDs of created resources for further processing.
|
|
616
|
-
|
|
617
|
-
--site-title=<value> Site Title for your Node.js Project installation.
|
|
618
|
-
|
|
619
|
-
Site Title which will be displayed in the Tab and at the top of the Frontend of your Node.js Project installation.
|
|
620
|
-
It is also the Title shown in the App-Overview in the mStudio.
|
|
621
|
-
If none is given the Software Name and the given Project will be used. The Title can be changed after the
|
|
622
|
-
installation is finished
|
|
623
|
-
|
|
624
|
-
--version=<value> Version of Node.js Project to be installed.
|
|
625
|
-
|
|
626
|
-
Specify the Version in which your Node.js Project will be installed.
|
|
627
|
-
If none is given the Node.js Project will be installed in the latest available version.
|
|
628
|
-
```
|
|
629
|
-
|
|
630
|
-
## `mw app install php`
|
|
631
|
-
|
|
632
|
-
Creates new PHP Project Installation.
|
|
633
|
-
|
|
634
|
-
```
|
|
635
|
-
USAGE
|
|
636
|
-
$ mw app install php --version <value> [-p <value>] [-q] [--site-title <value>] [-w] [--json]
|
|
637
|
-
|
|
638
|
-
FLAGS
|
|
639
|
-
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the
|
|
640
|
-
context
|
|
641
|
-
-q, --quiet suppress process output and only display a machine-readable summary.
|
|
642
|
-
-w, --wait Wait for your PHP Project to be ready.
|
|
643
|
-
--json
|
|
644
|
-
--site-title=<value> Site Title for your PHP Project installation.
|
|
645
|
-
--version=<value> (required) [default: latest] Version of PHP Project to be installed.
|
|
646
|
-
|
|
647
|
-
DESCRIPTION
|
|
648
|
-
Creates new PHP Project Installation.
|
|
649
|
-
|
|
650
|
-
FLAG DESCRIPTIONS
|
|
651
|
-
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
652
|
-
|
|
653
|
-
May contain a short ID or a full ID of a project; you can also use the "mw context set --project-id=<VALUE>" command
|
|
654
|
-
to persistently set a default project for all commands that accept this flag.
|
|
655
|
-
|
|
656
|
-
-q, --quiet suppress process output and only display a machine-readable summary.
|
|
657
|
-
|
|
658
|
-
This flag controls if you want to see the process output or only a summary. When using mw non-interactively (e.g. in
|
|
659
|
-
scripts), you can use this flag to easily get the IDs of created resources for further processing.
|
|
660
|
-
|
|
661
|
-
--site-title=<value> Site Title for your PHP Project installation.
|
|
662
|
-
|
|
663
|
-
Site Title which will be displayed in the Tab and at the top of the Frontend of your PHP Project installation.
|
|
664
|
-
It is also the Title shown in the App-Overview in the mStudio.
|
|
665
|
-
If none is given the Software Name and the given Project will be used. The Title can be changed after the
|
|
666
|
-
installation is finished
|
|
667
|
-
|
|
668
|
-
--version=<value> Version of PHP Project to be installed.
|
|
669
|
-
|
|
670
|
-
Specify the Version in which your PHP Project will be installed.
|
|
671
|
-
If none is given the PHP Project will be installed in the latest available version.
|
|
672
|
-
```
|
|
673
|
-
|
|
674
670
|
## `mw app install shopware5`
|
|
675
671
|
|
|
676
|
-
Creates new Shopware 5
|
|
672
|
+
Creates new Shopware 5 installation.
|
|
677
673
|
|
|
678
674
|
```
|
|
679
675
|
USAGE
|
|
@@ -701,7 +697,7 @@ FLAGS
|
|
|
701
697
|
--version=<value> (required) [default: latest] Version of Shopware 5 to be installed.
|
|
702
698
|
|
|
703
699
|
DESCRIPTION
|
|
704
|
-
Creates new Shopware 5
|
|
700
|
+
Creates new Shopware 5 installation.
|
|
705
701
|
|
|
706
702
|
FLAG DESCRIPTIONS
|
|
707
703
|
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
@@ -787,7 +783,7 @@ FLAG DESCRIPTIONS
|
|
|
787
783
|
|
|
788
784
|
## `mw app install shopware6`
|
|
789
785
|
|
|
790
|
-
Creates new Shopware 6
|
|
786
|
+
Creates new Shopware 6 installation.
|
|
791
787
|
|
|
792
788
|
```
|
|
793
789
|
USAGE
|
|
@@ -815,7 +811,7 @@ FLAGS
|
|
|
815
811
|
--version=<value> (required) [default: latest] Version of Shopware 6 to be installed.
|
|
816
812
|
|
|
817
813
|
DESCRIPTION
|
|
818
|
-
Creates new Shopware 6
|
|
814
|
+
Creates new Shopware 6 installation.
|
|
819
815
|
|
|
820
816
|
FLAG DESCRIPTIONS
|
|
821
817
|
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
@@ -901,7 +897,7 @@ FLAG DESCRIPTIONS
|
|
|
901
897
|
|
|
902
898
|
## `mw app install typo3`
|
|
903
899
|
|
|
904
|
-
Creates new TYPO3
|
|
900
|
+
Creates new TYPO3 installation.
|
|
905
901
|
|
|
906
902
|
```
|
|
907
903
|
USAGE
|
|
@@ -924,7 +920,7 @@ FLAGS
|
|
|
924
920
|
--version=<value> (required) [default: latest] Version of TYPO3 to be installed.
|
|
925
921
|
|
|
926
922
|
DESCRIPTION
|
|
927
|
-
Creates new TYPO3
|
|
923
|
+
Creates new TYPO3 installation.
|
|
928
924
|
|
|
929
925
|
FLAG DESCRIPTIONS
|
|
930
926
|
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
@@ -986,7 +982,7 @@ FLAG DESCRIPTIONS
|
|
|
986
982
|
|
|
987
983
|
## `mw app install wordpress`
|
|
988
984
|
|
|
989
|
-
Creates new WordPress
|
|
985
|
+
Creates new WordPress installation.
|
|
990
986
|
|
|
991
987
|
```
|
|
992
988
|
USAGE
|
|
@@ -1008,7 +1004,7 @@ FLAGS
|
|
|
1008
1004
|
--version=<value> (required) [default: latest] Version of WordPress to be installed.
|
|
1009
1005
|
|
|
1010
1006
|
DESCRIPTION
|
|
1011
|
-
Creates new WordPress
|
|
1007
|
+
Creates new WordPress installation.
|
|
1012
1008
|
|
|
1013
1009
|
FLAG DESCRIPTIONS
|
|
1014
1010
|
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
@@ -1093,6 +1089,24 @@ FLAG DESCRIPTIONS
|
|
|
1093
1089
|
to persistently set a default project for all commands that accept this flag.
|
|
1094
1090
|
```
|
|
1095
1091
|
|
|
1092
|
+
## `mw app ssh INSTALLATION-ID`
|
|
1093
|
+
|
|
1094
|
+
Connect to an app via SSH
|
|
1095
|
+
|
|
1096
|
+
```
|
|
1097
|
+
USAGE
|
|
1098
|
+
$ mw app ssh INSTALLATION-ID [--cd]
|
|
1099
|
+
|
|
1100
|
+
ARGUMENTS
|
|
1101
|
+
INSTALLATION-ID ID of the app installation to get
|
|
1102
|
+
|
|
1103
|
+
FLAGS
|
|
1104
|
+
--[no-]cd change to installation path after connecting
|
|
1105
|
+
|
|
1106
|
+
DESCRIPTION
|
|
1107
|
+
Connect to an app via SSH
|
|
1108
|
+
```
|
|
1109
|
+
|
|
1096
1110
|
## `mw app uninstall INSTALLATION-ID`
|
|
1097
1111
|
|
|
1098
1112
|
Uninstall an app
|
|
@@ -1918,49 +1932,6 @@ FLAG DESCRIPTIONS
|
|
|
1918
1932
|
to persistently set a default project for all commands that accept this flag.
|
|
1919
1933
|
```
|
|
1920
1934
|
|
|
1921
|
-
## `mw domain tld get TLD`
|
|
1922
|
-
|
|
1923
|
-
Get a toplevel domain.
|
|
1924
|
-
|
|
1925
|
-
```
|
|
1926
|
-
USAGE
|
|
1927
|
-
$ mw domain tld get TLD [-o json|yaml | | ]
|
|
1928
|
-
|
|
1929
|
-
ARGUMENTS
|
|
1930
|
-
TLD undefined
|
|
1931
|
-
|
|
1932
|
-
FLAGS
|
|
1933
|
-
-o, --output=<option> output in a more machine friendly format
|
|
1934
|
-
<options: json|yaml>
|
|
1935
|
-
|
|
1936
|
-
DESCRIPTION
|
|
1937
|
-
Get a toplevel domain.
|
|
1938
|
-
```
|
|
1939
|
-
|
|
1940
|
-
## `mw domain tld list`
|
|
1941
|
-
|
|
1942
|
-
List all supported toplevel domains.
|
|
1943
|
-
|
|
1944
|
-
```
|
|
1945
|
-
USAGE
|
|
1946
|
-
$ mw domain tld list [--columns <value> | -x] [--sort <value>] [--filter <value>] [--output csv|json|yaml | |
|
|
1947
|
-
[--csv | --no-truncate]] [--no-header | ]
|
|
1948
|
-
|
|
1949
|
-
FLAGS
|
|
1950
|
-
-x, --extended show extra columns
|
|
1951
|
-
--columns=<value> only show provided columns (comma-separated)
|
|
1952
|
-
--csv output is csv format [alias: --output=csv]
|
|
1953
|
-
--filter=<value> filter property by partial string matching, ex: name=foo
|
|
1954
|
-
--no-header hide table header from output
|
|
1955
|
-
--no-truncate do not truncate output to fit screen
|
|
1956
|
-
--output=<option> output in a more machine friendly format
|
|
1957
|
-
<options: csv|json|yaml>
|
|
1958
|
-
--sort=<value> property to sort by (prepend '-' for descending)
|
|
1959
|
-
|
|
1960
|
-
DESCRIPTION
|
|
1961
|
-
List all supported toplevel domains.
|
|
1962
|
-
```
|
|
1963
|
-
|
|
1964
1935
|
## `mw domain virtualhost create`
|
|
1965
1936
|
|
|
1966
1937
|
Create a new ingress
|
|
@@ -2321,23 +2292,30 @@ Get all deliveryboxes by project ID
|
|
|
2321
2292
|
|
|
2322
2293
|
```
|
|
2323
2294
|
USAGE
|
|
2324
|
-
$ mw mail deliverybox list
|
|
2295
|
+
$ mw mail deliverybox list [-p <value>] [--columns <value> | -x] [--sort <value>] [--filter <value>] [--output
|
|
2325
2296
|
csv|json|yaml | | [--csv | --no-truncate]] [--no-header | ]
|
|
2326
2297
|
|
|
2327
2298
|
FLAGS
|
|
2328
|
-
-
|
|
2329
|
-
|
|
2330
|
-
--
|
|
2331
|
-
--
|
|
2332
|
-
--
|
|
2333
|
-
--
|
|
2334
|
-
--
|
|
2335
|
-
|
|
2336
|
-
--
|
|
2337
|
-
|
|
2299
|
+
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the
|
|
2300
|
+
context
|
|
2301
|
+
-x, --extended show extra columns
|
|
2302
|
+
--columns=<value> only show provided columns (comma-separated)
|
|
2303
|
+
--csv output is csv format [alias: --output=csv]
|
|
2304
|
+
--filter=<value> filter property by partial string matching, ex: name=foo
|
|
2305
|
+
--no-header hide table header from output
|
|
2306
|
+
--no-truncate do not truncate output to fit screen
|
|
2307
|
+
--output=<option> output in a more machine friendly format
|
|
2308
|
+
<options: csv|json|yaml>
|
|
2309
|
+
--sort=<value> property to sort by (prepend '-' for descending)
|
|
2338
2310
|
|
|
2339
2311
|
DESCRIPTION
|
|
2340
2312
|
Get all deliveryboxes by project ID
|
|
2313
|
+
|
|
2314
|
+
FLAG DESCRIPTIONS
|
|
2315
|
+
-p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
|
|
2316
|
+
|
|
2317
|
+
May contain a short ID or a full ID of a project; you can also use the "mw context set --project-id=<VALUE>" command
|
|
2318
|
+
to persistently set a default project for all commands that accept this flag.
|
|
2341
2319
|
```
|
|
2342
2320
|
|
|
2343
2321
|
## `mw org delete [ORG-ID]`
|
|
@@ -3427,13 +3405,17 @@ FLAG DESCRIPTIONS
|
|
|
3427
3405
|
scripts), you can use this flag to easily get the IDs of created resources for further processing.
|
|
3428
3406
|
```
|
|
3429
3407
|
|
|
3430
|
-
## `mw user get`
|
|
3408
|
+
## `mw user get USER-ID`
|
|
3431
3409
|
|
|
3432
3410
|
Get profile information for a user.
|
|
3433
3411
|
|
|
3434
3412
|
```
|
|
3435
3413
|
USAGE
|
|
3436
|
-
$ mw user get [-o json|yaml | | ]
|
|
3414
|
+
$ mw user get USER-ID [-o json|yaml | | ]
|
|
3415
|
+
|
|
3416
|
+
ARGUMENTS
|
|
3417
|
+
USER-ID [default: self] The user ID to get information for; defaults to the special value 'self', which references to
|
|
3418
|
+
the currently authenticated user.
|
|
3437
3419
|
|
|
3438
3420
|
FLAGS
|
|
3439
3421
|
-o, --output=<option> output in a more machine friendly format
|
package/dist/esm/Translator.js
CHANGED
|
@@ -66,7 +66,8 @@ export async function getAppVersionFromUuid(apiClient, appId, appVersionId) {
|
|
|
66
66
|
throw new Error("Given UUID not valid.");
|
|
67
67
|
}
|
|
68
68
|
const appVersion = await apiClient.app.getAppversion({
|
|
69
|
-
|
|
69
|
+
appId: appId,
|
|
70
|
+
appVersionId: appVersionId,
|
|
70
71
|
});
|
|
71
72
|
assertStatus(appVersion, 200);
|
|
72
73
|
return appVersion.data;
|
|
@@ -21,7 +21,7 @@ export class Copy extends ExecRenderBaseCommand {
|
|
|
21
21
|
const p = makeProcessRenderer(this.flags, "Copying app installation");
|
|
22
22
|
const result = await p.runStep("requesting app copy", async () => {
|
|
23
23
|
const r = await this.apiClient.app.requestAppinstallationCopy({
|
|
24
|
-
|
|
24
|
+
id,
|
|
25
25
|
data: {
|
|
26
26
|
description,
|
|
27
27
|
},
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ExecRenderBaseCommand } from "../../../rendering/react/ExecRenderBaseCommand.js";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import { AppInstallationResult } from "../../../lib/app/Installer.js";
|
|
3
|
+
import { AppInstallationResult, AppInstaller } from "../../../lib/app/Installer.js";
|
|
4
|
+
export declare const nodeInstaller: AppInstaller<"site-title" | "wait">;
|
|
4
5
|
export default class InstallNode extends ExecRenderBaseCommand<typeof InstallNode, AppInstallationResult> {
|
|
5
6
|
static description: string;
|
|
6
|
-
static flags: import("@oclif/core/lib/interfaces/parser.js").FlagInput<import("../../../lib/app/flags.js").RelevantFlags<readonly ("
|
|
7
|
+
static flags: import("@oclif/core/lib/interfaces/parser.js").FlagInput<import("../../../lib/app/flags.js").RelevantFlags<readonly ("site-title" | "wait")[]>>;
|
|
7
8
|
protected exec(): Promise<{
|
|
8
9
|
appInstallationId: string;
|
|
9
10
|
}>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ExecRenderBaseCommand } from "../../../rendering/react/ExecRenderBaseCommand.js";
|
|
2
|
+
import { AppInstaller, } from "../../../lib/app/Installer.js";
|
|
3
|
+
export const nodeInstaller = new AppInstaller("3e7f920b-a711-4d2f-9871-661e1b41a2f0", "custom Node.js", ["site-title", "wait"]);
|
|
4
|
+
export default class InstallNode extends ExecRenderBaseCommand {
|
|
5
|
+
static description = nodeInstaller.description;
|
|
6
|
+
static flags = nodeInstaller.flags;
|
|
7
|
+
async exec() {
|
|
8
|
+
return nodeInstaller.exec(this.apiClient, this.args, this.flags, this.config);
|
|
9
|
+
}
|
|
10
|
+
render(result) {
|
|
11
|
+
return nodeInstaller.render(result, this.flags);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ExecRenderBaseCommand } from "../../../rendering/react/ExecRenderBaseCommand.js";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import { AppInstallationResult } from "../../../lib/app/Installer.js";
|
|
3
|
+
import { AppInstallationResult, AppInstaller } from "../../../lib/app/Installer.js";
|
|
4
|
+
export declare const phpInstaller: AppInstaller<"site-title" | "document-root" | "wait">;
|
|
4
5
|
export default class InstallPhp extends ExecRenderBaseCommand<typeof InstallPhp, AppInstallationResult> {
|
|
5
6
|
static description: string;
|
|
6
|
-
static flags: import("@oclif/core/lib/interfaces/parser.js").FlagInput<import("../../../lib/app/flags.js").RelevantFlags<readonly ("
|
|
7
|
+
static flags: import("@oclif/core/lib/interfaces/parser.js").FlagInput<import("../../../lib/app/flags.js").RelevantFlags<readonly ("site-title" | "document-root" | "wait")[]>>;
|
|
7
8
|
protected exec(): Promise<{
|
|
8
9
|
appInstallationId: string;
|
|
9
10
|
}>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ExecRenderBaseCommand } from "../../../rendering/react/ExecRenderBaseCommand.js";
|
|
2
|
+
import { AppInstaller, } from "../../../lib/app/Installer.js";
|
|
3
|
+
export const phpInstaller = new AppInstaller("34220303-cb87-4592-8a95-2eb20a97b2ac", "custom PHP", ["document-root", "site-title", "wait"]);
|
|
4
|
+
export default class InstallPhp extends ExecRenderBaseCommand {
|
|
5
|
+
static description = phpInstaller.description;
|
|
6
|
+
static flags = phpInstaller.flags;
|
|
7
|
+
async exec() {
|
|
8
|
+
return phpInstaller.exec(this.apiClient, this.args, this.flags, this.config);
|
|
9
|
+
}
|
|
10
|
+
render(result) {
|
|
11
|
+
return phpInstaller.render(result, this.flags);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -75,7 +75,7 @@ export default class Update extends ExecRenderBaseCommand {
|
|
|
75
75
|
}
|
|
76
76
|
await process.runStep("updating app dependencies", async () => {
|
|
77
77
|
const r = await this.apiClient.app.patchAppinstallation({
|
|
78
|
-
|
|
78
|
+
appInstallationId,
|
|
79
79
|
data: {
|
|
80
80
|
systemSoftware: versionsToUpdate,
|
|
81
81
|
},
|
|
@@ -87,7 +87,7 @@ export default class Update extends ExecRenderBaseCommand {
|
|
|
87
87
|
async getVersions(p, systemSoftware) {
|
|
88
88
|
const versions = await p.runStep(`fetching versions for ${systemSoftware.name}`, async () => {
|
|
89
89
|
const r = await this.apiClient.app.listSystemsoftwareversions({
|
|
90
|
-
|
|
90
|
+
systemSoftwareId: systemSoftware.id,
|
|
91
91
|
});
|
|
92
92
|
assertStatus(r, 200);
|
|
93
93
|
return r.data;
|
|
@@ -22,7 +22,7 @@ export class Versions extends ListBaseCommand {
|
|
|
22
22
|
throw new Error(`system software ${systemSoftwareName} not found`);
|
|
23
23
|
}
|
|
24
24
|
return await this.apiClient.app.listSystemsoftwareversions({
|
|
25
|
-
|
|
25
|
+
systemSoftwareId: systemSoftware.id,
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
28
|
mapData(data) {
|
|
@@ -2,6 +2,8 @@ import { assertStatus } from "@mittwald/api-client-commons";
|
|
|
2
2
|
import { getAppFromUuid, getAppVersionFromUuid } from "../../Translator.js";
|
|
3
3
|
import { projectFlags, withProjectId } from "../../lib/project/flags.js";
|
|
4
4
|
import { ListBaseCommand } from "../../ListBaseCommand.js";
|
|
5
|
+
import { phpInstaller } from "./create/php.js";
|
|
6
|
+
import { nodeInstaller } from "./create/node.js";
|
|
5
7
|
export default class List extends ListBaseCommand {
|
|
6
8
|
static description = "List installed apps in a project.";
|
|
7
9
|
static flags = {
|
|
@@ -11,7 +13,7 @@ export default class List extends ListBaseCommand {
|
|
|
11
13
|
async getData() {
|
|
12
14
|
const projectId = await withProjectId(this.apiClient, List, this.flags, this.args, this.config);
|
|
13
15
|
const apps = await this.apiClient.app.listAppinstallations({
|
|
14
|
-
|
|
16
|
+
projectId,
|
|
15
17
|
});
|
|
16
18
|
assertStatus(apps, 200);
|
|
17
19
|
return apps;
|
|
@@ -43,6 +45,9 @@ export default class List extends ListBaseCommand {
|
|
|
43
45
|
appVersion: {
|
|
44
46
|
header: "Version",
|
|
45
47
|
get: (i) => {
|
|
48
|
+
if ([phpInstaller.appId, nodeInstaller.appId].includes(i.appId)) {
|
|
49
|
+
return "n/a";
|
|
50
|
+
}
|
|
46
51
|
if (i.appVersionCurrent?.id === i.appVersionDesired.id) {
|
|
47
52
|
return i.appVersionDesired.externalVersion;
|
|
48
53
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseCommand } from "../../BaseCommand.js";
|
|
2
|
+
export default class Ssh extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
"installation-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static flags: {
|
|
8
|
+
cd: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
9
|
+
};
|
|
10
|
+
run(): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { BaseCommand } from "../../BaseCommand.js";
|
|
2
|
+
import { assertStatus } from "@mittwald/api-client-commons";
|
|
3
|
+
import * as child_process from "child_process";
|
|
4
|
+
import { appInstallationFlags } from "../../lib/app/flags.js";
|
|
5
|
+
import { Flags } from "@oclif/core";
|
|
6
|
+
import * as path from "path";
|
|
7
|
+
export default class Ssh extends BaseCommand {
|
|
8
|
+
static description = "Connect to an app via SSH";
|
|
9
|
+
static args = { ...appInstallationFlags };
|
|
10
|
+
static flags = {
|
|
11
|
+
cd: Flags.boolean({
|
|
12
|
+
summary: "change to installation path after connecting",
|
|
13
|
+
default: true,
|
|
14
|
+
allowNo: true,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
async run() {
|
|
18
|
+
const { args, flags } = await this.parse(Ssh);
|
|
19
|
+
const id = args["installation-id"];
|
|
20
|
+
const appInstallationResponse = await this.apiClient.app.getAppinstallation({
|
|
21
|
+
appInstallationId: id,
|
|
22
|
+
});
|
|
23
|
+
assertStatus(appInstallationResponse, 200);
|
|
24
|
+
if (appInstallationResponse.data.projectId === undefined) {
|
|
25
|
+
throw new Error("Project ID of app must not be undefined");
|
|
26
|
+
}
|
|
27
|
+
const projectResponse = await this.apiClient.project.getProject({
|
|
28
|
+
id: appInstallationResponse.data.projectId,
|
|
29
|
+
});
|
|
30
|
+
assertStatus(projectResponse, 200);
|
|
31
|
+
const userResponse = await this.apiClient.user.getOwnAccount();
|
|
32
|
+
assertStatus(userResponse, 200);
|
|
33
|
+
const sshHost = `ssh.${projectResponse.data.clusterID}.${projectResponse.data.clusterDomain}`;
|
|
34
|
+
const sshUser = `${userResponse.data.email}@app-${appInstallationResponse.data.id}`;
|
|
35
|
+
this.log("connecting to %o as %o", sshHost, sshUser);
|
|
36
|
+
let cmd = "exec bash -l";
|
|
37
|
+
if (flags.cd) {
|
|
38
|
+
const absoluteInstallPath = path.join(projectResponse.data.directories["Web"], appInstallationResponse.data.installationPath);
|
|
39
|
+
cmd = flags.cd ? `cd ${absoluteInstallPath} && exec bash -l` : "bash -l";
|
|
40
|
+
this.log("changing to %o; use --no-cd to disable this behaviour", absoluteInstallPath);
|
|
41
|
+
}
|
|
42
|
+
child_process.spawnSync("/usr/bin/ssh", ["-t", "-l", sshUser, sshHost, cmd], {
|
|
43
|
+
stdio: "inherit",
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|