@catladder/cli 0.0.0-waitfor-deploy-31ebcf14 → 0.0.0-yarn-cache-a697966f
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/CONTRIBUTING.md +17 -12
- package/README.md +19 -12
- package/bin/catenv +1 -1
- package/bin/catenv-dev +3 -0
- package/bin/catladder +1 -1
- package/bin/catladder-dev +3 -0
- package/dist/apps/catenv/catenv.d.ts +2 -4
- package/dist/apps/catenv/catenv.js +12 -89
- package/dist/apps/catenv/catenv.js.map +1 -1
- package/dist/apps/catenv/printVariables.d.ts +3 -0
- package/dist/apps/catenv/printVariables.js +115 -0
- package/dist/apps/catenv/printVariables.js.map +1 -0
- package/dist/apps/catenv/types.d.ts +5 -0
- package/dist/apps/catenv/types.js +3 -0
- package/dist/apps/catenv/types.js.map +1 -0
- package/dist/apps/catenv/utils.d.ts +12 -0
- package/dist/apps/catenv/utils.js +108 -0
- package/dist/apps/catenv/utils.js.map +1 -0
- package/dist/apps/catenv/writeDotEnvFiles.d.ts +3 -0
- package/dist/apps/catenv/writeDotEnvFiles.js +94 -0
- package/dist/apps/catenv/writeDotEnvFiles.js.map +1 -0
- package/dist/apps/catenv/writeEnvDTs.d.ts +3 -0
- package/dist/apps/catenv/writeEnvDTs.js +114 -0
- package/dist/apps/catenv/writeEnvDTs.js.map +1 -0
- package/dist/apps/cli/cli.js +4 -2
- package/dist/apps/cli/cli.js.map +1 -1
- package/dist/apps/cli/commands/{project/commandCopyDB.d.ts → cloudSQL/commandRestoreDb.d.ts} +1 -1
- package/dist/apps/cli/commands/cloudSQL/commandRestoreDb.js +185 -0
- package/dist/apps/cli/commands/cloudSQL/commandRestoreDb.js.map +1 -0
- package/dist/apps/cli/commands/cloudSQL/index.d.ts +3 -0
- package/dist/apps/cli/commands/cloudSQL/index.js +50 -0
- package/dist/apps/cli/commands/cloudSQL/index.js.map +1 -0
- package/dist/apps/cli/commands/general/index.d.ts +1 -1
- package/dist/apps/cli/commands/general/index.js +11 -11
- package/dist/apps/cli/commands/general/index.js.map +1 -1
- package/dist/apps/cli/commands/general/portForward.d.ts +1 -1
- package/dist/apps/cli/commands/general/portForward.js +3 -3
- package/dist/apps/cli/commands/general/portForward.js.map +1 -1
- package/dist/apps/cli/commands/mongodb/index.d.ts +1 -1
- package/dist/apps/cli/commands/mongodb/projectMongoDestroyMember.d.ts +1 -1
- package/dist/apps/cli/commands/mongodb/projectMongoDestroyMember.js +2 -1
- package/dist/apps/cli/commands/mongodb/projectMongoDestroyMember.js.map +1 -1
- package/dist/apps/cli/commands/mongodb/projectMongoGetShell.d.ts +1 -1
- package/dist/apps/cli/commands/mongodb/projectMongoPortForward.d.ts +1 -1
- package/dist/apps/cli/commands/mongodb/projectMongoPortForward.js +27 -11
- package/dist/apps/cli/commands/mongodb/projectMongoPortForward.js.map +1 -1
- package/dist/apps/cli/commands/mongodb/utils/index.js +16 -4
- package/dist/apps/cli/commands/mongodb/utils/index.js.map +1 -1
- package/dist/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.d.ts +3 -0
- package/dist/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.js +189 -0
- package/dist/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.js.map +1 -0
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.js +89 -62
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.js.map +1 -1
- package/dist/apps/cli/commands/project/commandConfigSecrets.d.ts +2 -1
- package/dist/apps/cli/commands/project/commandConfigSecrets.js +71 -57
- package/dist/apps/cli/commands/project/commandConfigSecrets.js.map +1 -1
- package/dist/apps/cli/commands/project/commandDeletePods.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandDeletePods.js +2 -1
- package/dist/apps/cli/commands/project/commandDeletePods.js.map +1 -1
- package/dist/apps/cli/commands/project/commandDeleteProject.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandEnvVars.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandEnvVars.js +1 -1
- package/dist/apps/cli/commands/project/commandEnvVars.js.map +1 -1
- package/dist/apps/cli/commands/project/commandGetMyTotalWorktime.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandGetMyTotalWorktime.js +1 -1
- package/dist/apps/cli/commands/project/commandGetMyTotalWorktime.js.map +1 -1
- package/dist/apps/cli/commands/project/commandGetShell.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandGetShell.js +10 -6
- package/dist/apps/cli/commands/project/commandGetShell.js.map +1 -1
- package/dist/apps/cli/commands/project/commandGitlabCi.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandGitlabCi.js.map +1 -1
- package/dist/apps/cli/commands/project/commandInitProject.old.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandListPods.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandListPods.js +2 -2
- package/dist/apps/cli/commands/project/commandListPods.js.map +1 -1
- package/dist/apps/cli/commands/project/commandMigrateHelm3.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandMigrateHelm3.js +1 -2
- package/dist/apps/cli/commands/project/commandMigrateHelm3.js.map +1 -1
- package/dist/apps/cli/commands/project/commandNamespace.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenCostDashboard.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenCostDashboard.js +2 -2
- package/dist/apps/cli/commands/project/commandOpenCostDashboard.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenDashboard.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenDashboard.js +19 -20
- package/dist/apps/cli/commands/project/commandOpenDashboard.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenEnv.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenGit.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenGit.js +2 -7
- package/dist/apps/cli/commands/project/commandOpenGit.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenGrafana.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenGrafana.js +2 -2
- package/dist/apps/cli/commands/project/commandOpenGrafana.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenGrafanaPod.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenGrafanaPod.js +4 -3
- package/dist/apps/cli/commands/project/commandOpenGrafanaPod.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenLogs.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenLogs.js +7 -20
- package/dist/apps/cli/commands/project/commandOpenLogs.js.map +1 -1
- package/dist/apps/cli/commands/project/commandPauseProject.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandPortForward.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandPortForward.js +98 -36
- package/dist/apps/cli/commands/project/commandPortForward.js.map +1 -1
- package/dist/apps/cli/commands/project/commandSecretsClearBackups.d.ts +5 -0
- package/dist/apps/cli/commands/project/commandSecretsClearBackups.js +90 -0
- package/dist/apps/cli/commands/project/commandSecretsClearBackups.js.map +1 -0
- package/dist/apps/cli/commands/project/commandSetup.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandTriggerCronjob.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandTriggerCronjob.js.map +1 -1
- package/dist/apps/cli/commands/project/index.d.ts +1 -1
- package/dist/apps/cli/commands/project/index.js +4 -2
- package/dist/apps/cli/commands/project/index.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/index.d.ts +1 -1
- package/dist/apps/cli/commands/project/setup/index.js +11 -7
- package/dist/apps/cli/commands/project/setup/index.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupAccessTokens.d.ts +1 -1
- package/dist/apps/cli/commands/project/setup/setupAccessTokens.js +5 -4
- package/dist/apps/cli/commands/project/setup/setupAccessTokens.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupCloudRun.d.ts +3 -0
- package/dist/apps/cli/commands/project/setup/setupCloudRun.js +118 -0
- package/dist/apps/cli/commands/project/setup/setupCloudRun.js.map +1 -0
- package/dist/apps/cli/commands/project/setup/setupContext.d.ts +2 -2
- package/dist/apps/cli/commands/project/setup/setupContext.js +10 -3
- package/dist/apps/cli/commands/project/setup/setupContext.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupKubernetes.d.ts +2 -2
- package/dist/apps/cli/commands/project/setup/setupKubernetes.js +25 -18
- package/dist/apps/cli/commands/project/setup/setupKubernetes.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupTopic.d.ts +2 -0
- package/dist/apps/cli/commands/project/setup/setupTopic.js +69 -0
- package/dist/apps/cli/commands/project/setup/setupTopic.js.map +1 -0
- package/dist/apps/cli/commands/project/utils/ensureNamespace.d.ts +1 -1
- package/dist/apps/cli/commands/project/utils/ensureNamespace.js.map +1 -1
- package/dist/apps/cli/commands/project/utils/showProjectBanner.d.ts +1 -1
- package/dist/apps/cli/commands/theStuffThatReallyMatters/index.d.ts +1 -1
- package/dist/apps/cli/commands/theStuffThatReallyMatters/index.js +1 -1
- package/dist/apps/cli/commands/theStuffThatReallyMatters/index.js.map +1 -1
- package/dist/apps/cli/config/writeConfig.d.ts +2 -2
- package/dist/apps/cli/verify/index.d.ts +1 -1
- package/dist/apps/cli/verify/migration/fromv2.d.ts +1 -1
- package/dist/apps/cli/verify/migration/fromv2.js +2 -0
- package/dist/apps/cli/verify/migration/fromv2.js.map +1 -1
- package/dist/apps/cli/verify/migration/migrateSecrets.d.ts +3 -3
- package/dist/apps/cli/verify/migration/migrateSecrets.js +6 -3
- package/dist/apps/cli/verify/migration/migrateSecrets.js.map +1 -1
- package/dist/apps/cli/verify/migration/oldGitlabCi.d.ts +1 -1
- package/dist/apps/cli/verify/migration/oldGitlabCi.js +1 -1
- package/dist/apps/cli/verify/migration/oldGitlabCi.js.map +1 -1
- package/dist/bundles/catenv/index.js +46611 -0
- package/dist/bundles/catenv/xdg-open +1066 -0
- package/dist/bundles/cli/clipboard_i686.exe +0 -0
- package/dist/bundles/cli/clipboard_x86_64.exe +0 -0
- package/dist/bundles/cli/exec-child.js +39 -0
- package/dist/bundles/cli/index.js +363653 -0
- package/dist/bundles/cli/xdg-open +1066 -0
- package/dist/bundles/cli/xsel +0 -0
- package/dist/catenv.js +2 -4
- package/dist/catenv.js.map +1 -1
- package/dist/cli.js +0 -7
- package/dist/cli.js.map +1 -1
- package/dist/config/constants.d.ts +0 -1
- package/dist/config/constants.js +1 -2
- package/dist/config/constants.js.map +1 -1
- package/dist/config/getProjectConfig.d.ts +10 -10
- package/dist/config/getProjectConfig.js +77 -23
- package/dist/config/getProjectConfig.js.map +1 -1
- package/dist/config/parseChoice.d.ts +4 -0
- package/dist/config/parseChoice.js +9 -0
- package/dist/config/parseChoice.js.map +1 -0
- package/dist/gcloud/artifactsRegistry.d.ts +5 -0
- package/dist/gcloud/artifactsRegistry.js +59 -0
- package/dist/gcloud/artifactsRegistry.js.map +1 -0
- package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.d.ts +2 -0
- package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.js +67 -0
- package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.js.map +1 -0
- package/dist/gcloud/cloudRun/openCloudRunDashboards.d.ts +3 -0
- package/dist/gcloud/cloudRun/openCloudRunDashboards.js +62 -0
- package/dist/gcloud/cloudRun/openCloudRunDashboards.js.map +1 -0
- package/dist/gcloud/cloudSql/copyDb.d.ts +12 -0
- package/dist/gcloud/cloudSql/copyDb.js +64 -0
- package/dist/gcloud/cloudSql/copyDb.js.map +1 -0
- package/dist/gcloud/cloudSql/startProxy.d.ts +10 -0
- package/dist/gcloud/cloudSql/startProxy.js +121 -0
- package/dist/gcloud/cloudSql/startProxy.js.map +1 -0
- package/dist/gcloud/enableServices.d.ts +3 -0
- package/dist/gcloud/enableServices.js +63 -0
- package/dist/gcloud/enableServices.js.map +1 -0
- package/dist/gcloud/openDashboard.d.ts +2 -0
- package/dist/{apps/cli/commands/shared/index.js → gcloud/openDashboard.js} +23 -27
- package/dist/gcloud/openDashboard.js.map +1 -0
- package/dist/gcloud/serviceAccounts.d.ts +12 -0
- package/dist/gcloud/serviceAccounts.js +144 -0
- package/dist/gcloud/serviceAccounts.js.map +1 -0
- package/dist/kubernetes/index.d.ts +3 -0
- package/dist/kubernetes/index.js +88 -0
- package/dist/kubernetes/index.js.map +1 -0
- package/dist/kubernetes/openKubernetesDashboards.d.ts +4 -0
- package/dist/kubernetes/openKubernetesDashboards.js +94 -0
- package/dist/kubernetes/openKubernetesDashboards.js.map +1 -0
- package/dist/kubernetes/portForward.d.ts +1 -0
- package/dist/kubernetes/portForward.js +55 -0
- package/dist/kubernetes/portForward.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/cluster.js +3 -8
- package/dist/utils/cluster.js.map +1 -1
- package/dist/utils/gitlab.d.ts +8 -6
- package/dist/utils/gitlab.js +165 -46
- package/dist/utils/gitlab.js.map +1 -1
- package/dist/utils/passwordstore/index.d.ts +0 -1
- package/dist/utils/passwordstore/index.js +1 -64
- package/dist/utils/passwordstore/index.js.map +1 -1
- package/dist/utils/portForwards.d.ts +12 -0
- package/dist/utils/{portForward.js → portForwards.js} +20 -16
- package/dist/utils/portForwards.js.map +1 -0
- package/dist/utils/projects/index.d.ts +0 -3
- package/dist/utils/projects/index.js +3 -53
- package/dist/utils/projects/index.js.map +1 -1
- package/package.json +73 -22
- package/scripts/bundle +4 -0
- package/src/apps/catenv/catenv.ts +11 -62
- package/src/apps/catenv/printVariables.ts +58 -0
- package/src/apps/catenv/types.ts +6 -0
- package/src/apps/catenv/utils.ts +49 -0
- package/src/apps/catenv/writeDotEnvFiles.ts +44 -0
- package/src/apps/catenv/writeEnvDTs.ts +71 -0
- package/src/apps/cli/cli.ts +3 -1
- package/src/apps/cli/commands/cloudSQL/commandRestoreDb.ts +136 -0
- package/src/apps/cli/commands/cloudSQL/index.ts +8 -0
- package/src/apps/cli/commands/general/index.ts +11 -8
- package/src/apps/cli/commands/general/portForward.ts +4 -4
- package/src/apps/cli/commands/mongodb/index.ts +1 -1
- package/src/apps/cli/commands/mongodb/projectMongoDestroyMember.ts +3 -5
- package/src/apps/cli/commands/mongodb/projectMongoGetShell.ts +1 -1
- package/src/apps/cli/commands/mongodb/projectMongoPortForward.ts +21 -3
- package/src/apps/cli/commands/mongodb/utils/index.ts +19 -11
- package/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.ts +175 -0
- package/src/apps/cli/commands/project/commandCloudSqlProxy.ts +106 -55
- package/src/apps/cli/commands/project/commandConfigSecrets.ts +49 -35
- package/src/apps/cli/commands/project/commandDeletePods.ts +3 -5
- package/src/apps/cli/commands/project/commandDeleteProject.ts +1 -1
- package/src/apps/cli/commands/project/commandEnvVars.ts +6 -3
- package/src/apps/cli/commands/project/commandGetMyTotalWorktime.ts +2 -2
- package/src/apps/cli/commands/project/commandGetShell.ts +10 -9
- package/src/apps/cli/commands/project/commandGitlabCi.ts +2 -1
- package/src/apps/cli/commands/project/commandInitProject.old.ts +1 -1
- package/src/apps/cli/commands/project/commandListPods.ts +2 -2
- package/src/apps/cli/commands/project/commandMigrateHelm3.ts +4 -3
- package/src/apps/cli/commands/project/commandNamespace.ts +1 -1
- package/src/apps/cli/commands/project/commandOpenCostDashboard.ts +3 -3
- package/src/apps/cli/commands/project/commandOpenDashboard.ts +12 -32
- package/src/apps/cli/commands/project/commandOpenEnv.ts +1 -1
- package/src/apps/cli/commands/project/commandOpenGit.ts +3 -3
- package/src/apps/cli/commands/project/commandOpenGrafana.ts +3 -3
- package/src/apps/cli/commands/project/commandOpenGrafanaPod.ts +5 -7
- package/src/apps/cli/commands/project/commandOpenLogs.ts +4 -35
- package/src/apps/cli/commands/project/commandPauseProject.ts +1 -1
- package/src/apps/cli/commands/project/commandPortForward.ts +75 -34
- package/src/apps/cli/commands/project/commandSecretsClearBackups.ts +27 -0
- package/src/apps/cli/commands/project/commandSetup.ts +1 -1
- package/src/apps/cli/commands/project/commandTriggerCronjob.ts +3 -2
- package/src/apps/cli/commands/project/index.ts +6 -3
- package/src/apps/cli/commands/project/setup/index.ts +3 -1
- package/src/apps/cli/commands/project/setup/setupAccessTokens.ts +23 -11
- package/src/apps/cli/commands/project/setup/setupCloudRun.ts +84 -0
- package/src/apps/cli/commands/project/setup/setupContext.ts +9 -2
- package/src/apps/cli/commands/project/setup/setupKubernetes.ts +56 -28
- package/src/apps/cli/commands/project/setup/setupTopic.ts +22 -0
- package/src/apps/cli/commands/project/utils/ensureNamespace.ts +4 -2
- package/src/apps/cli/commands/project/utils/showProjectBanner.ts +1 -1
- package/src/apps/cli/commands/theStuffThatReallyMatters/index.ts +2 -2
- package/src/apps/cli/config/writeConfig.ts +2 -2
- package/src/apps/cli/verify/index.ts +1 -1
- package/src/apps/cli/verify/migration/fromv2.ts +5 -7
- package/src/apps/cli/verify/migration/migrateSecrets.ts +15 -5
- package/src/apps/cli/verify/migration/oldGitlabCi.ts +2 -2
- package/src/catenv.ts +3 -4
- package/src/cli.ts +1 -7
- package/src/config/constants.ts +0 -2
- package/src/config/getProjectConfig.ts +71 -31
- package/src/config/parseChoice.ts +4 -0
- package/src/gcloud/artifactsRegistry.ts +16 -0
- package/src/gcloud/cloudRun/getCloudRunDomainSuffix.ts +35 -0
- package/src/gcloud/cloudRun/openCloudRunDashboards.ts +22 -0
- package/src/gcloud/cloudSql/copyDb.ts +57 -0
- package/src/gcloud/cloudSql/startProxy.ts +74 -0
- package/src/gcloud/enableServices.ts +14 -0
- package/src/gcloud/openDashboard.ts +19 -0
- package/src/gcloud/serviceAccounts.ts +101 -0
- package/src/kubernetes/index.ts +27 -0
- package/src/kubernetes/openKubernetesDashboards.ts +52 -0
- package/src/kubernetes/portForward.ts +15 -0
- package/src/types/child-process-promise.d.ts +37 -1
- package/src/utils/cluster.ts +3 -3
- package/src/utils/gitlab.ts +141 -30
- package/src/utils/passwordstore/index.ts +2 -30
- package/src/utils/{portForward.ts → portForwards.ts} +27 -22
- package/src/utils/projects/index.ts +3 -24
- package/tsconfig.json +1 -1
- package/dist/apps/cli/commands/project/commandCopyDB.js +0 -102
- package/dist/apps/cli/commands/project/commandCopyDB.js.map +0 -1
- package/dist/apps/cli/commands/shared/index.d.ts +0 -3
- package/dist/apps/cli/commands/shared/index.js.map +0 -1
- package/dist/utils/portForward.d.ts +0 -4
- package/dist/utils/portForward.js.map +0 -1
- package/src/apps/cli/commands/project/commandCopyDB.ts +0 -91
- package/src/apps/cli/commands/shared/index.ts +0 -36
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
-
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
-
return cooked;
|
|
5
|
-
};
|
|
6
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -40,16 +36,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
40
36
|
}
|
|
41
37
|
};
|
|
42
38
|
exports.__esModule = true;
|
|
43
|
-
exports.
|
|
44
|
-
var zx_1 = require("zx");
|
|
39
|
+
exports.getProjectNamespace = exports.hasGitlabCiFile = exports.readRootGitlabCiFile = exports.getRootGitlabCiFile = exports.getGitRoot = void 0;
|
|
45
40
|
var path_1 = require("path");
|
|
46
41
|
var getProjectConfig_1 = require("../../config/getProjectConfig");
|
|
47
|
-
var k8sApi_1 = require("../../k8sApi");
|
|
48
42
|
var files_1 = require("../files");
|
|
43
|
+
var child_process_promise_1 = require("child-process-promise");
|
|
49
44
|
var getGitRoot = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
50
45
|
return __generator(this, function (_a) {
|
|
51
46
|
switch (_a.label) {
|
|
52
|
-
case 0: return [4 /*yield*/, (0,
|
|
47
|
+
case 0: return [4 /*yield*/, (0, child_process_promise_1.exec)("git rev-parse --show-toplevel")];
|
|
53
48
|
case 1: return [2 /*return*/, (_a.sent()).stdout.trim()];
|
|
54
49
|
}
|
|
55
50
|
});
|
|
@@ -105,49 +100,4 @@ var getProjectNamespace = function (envComponent) { return __awaiter(void 0, voi
|
|
|
105
100
|
});
|
|
106
101
|
}); };
|
|
107
102
|
exports.getProjectNamespace = getProjectNamespace;
|
|
108
|
-
var getProjectPods = function (envComponent) { return __awaiter(void 0, void 0, void 0, function () {
|
|
109
|
-
var namespace, k8sApi, res;
|
|
110
|
-
return __generator(this, function (_a) {
|
|
111
|
-
switch (_a.label) {
|
|
112
|
-
case 0: return [4 /*yield*/, (0, exports.getProjectNamespace)(envComponent)];
|
|
113
|
-
case 1:
|
|
114
|
-
namespace = _a.sent();
|
|
115
|
-
k8sApi = (0, k8sApi_1.getk8sApi)();
|
|
116
|
-
return [4 /*yield*/, k8sApi.listNamespacedPod(namespace)];
|
|
117
|
-
case 2:
|
|
118
|
-
res = _a.sent();
|
|
119
|
-
return [2 /*return*/, res.body.items];
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}); };
|
|
123
|
-
exports.getProjectPods = getProjectPods;
|
|
124
|
-
var getProjectPvcs = function (envComponent) { return __awaiter(void 0, void 0, void 0, function () {
|
|
125
|
-
var namespace, k8sApi, res;
|
|
126
|
-
return __generator(this, function (_a) {
|
|
127
|
-
switch (_a.label) {
|
|
128
|
-
case 0: return [4 /*yield*/, (0, exports.getProjectNamespace)(envComponent)];
|
|
129
|
-
case 1:
|
|
130
|
-
namespace = _a.sent();
|
|
131
|
-
k8sApi = (0, k8sApi_1.getk8sApi)();
|
|
132
|
-
return [4 /*yield*/, k8sApi.listNamespacedPersistentVolumeClaim(namespace)];
|
|
133
|
-
case 2:
|
|
134
|
-
res = _a.sent();
|
|
135
|
-
return [2 /*return*/, res.body.items];
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
}); };
|
|
139
|
-
exports.getProjectPvcs = getProjectPvcs;
|
|
140
|
-
var getProjectPodNames = function (envComponent) { return __awaiter(void 0, void 0, void 0, function () {
|
|
141
|
-
var pods;
|
|
142
|
-
return __generator(this, function (_a) {
|
|
143
|
-
switch (_a.label) {
|
|
144
|
-
case 0: return [4 /*yield*/, (0, exports.getProjectPods)(envComponent)];
|
|
145
|
-
case 1:
|
|
146
|
-
pods = _a.sent();
|
|
147
|
-
return [2 /*return*/, pods.map(function (n) { return n.metadata.name; })];
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
}); };
|
|
151
|
-
exports.getProjectPodNames = getProjectPodNames;
|
|
152
|
-
var templateObject_1;
|
|
153
103
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/projects/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/projects/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAA4B;AAC5B,kEAA8E;AAE9E,kCAA2C;AAC3C,+DAA6C;AAEtC,IAAM,UAAU,GAAG;;;oBAChB,qBAAM,IAAA,4BAAI,EAAC,+BAA+B,CAAC,EAAA;oBAAnD,sBAAO,CAAC,SAA2C,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC;;;KACpE,CAAC;AAFW,QAAA,UAAU,cAErB;AAEK,IAAM,mBAAmB,GAAG;;;;oBACjB,qBAAM,IAAA,kBAAU,GAAE,EAAA;;gBAA5B,OAAO,GAAG,SAAkB;gBAClC,sBAAO,IAAA,WAAI,EAAC,OAAO,EAAE,gBAAgB,CAAC,EAAC;;;KACxC,CAAC;AAHW,QAAA,mBAAmB,uBAG9B;AAEK,IAAM,oBAAoB,GAAG;;;YAClC,KAAA,uBAAe,CAAA;YAAC,qBAAM,IAAA,2BAAmB,GAAE,EAAA;gBAA3C,sBAAA,kBAAgB,SAA2B,EAAC,EAAA;;SAAA,CAAC;AADlC,QAAA,oBAAoB,wBACc;AAExC,IAAM,eAAe,GAAG;;;;oBACP,qBAAM,IAAA,4BAAoB,GAAE,EAAA;;gBAA5C,KAAgB,SAA4B,EAA3C,KAAK,QAAA,EAAE,IAAI,QAAA;gBAClB,IAAI,KAAK,EAAE;oBACT,sBAAO,KAAK,EAAC;iBACd;gBACD,sBAAO,IAAI,EAAC;;;KACb,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEK,IAAM,mBAAmB,GAAG,UAAO,YAAoB;;;;;gBACpD,GAAG,GAAK,IAAA,8BAAW,EAAC,YAAY,CAAC,IAA9B,CAA+B;gBAC3B,qBAAM,IAAA,mCAAgB,GAAE,EAAA;;gBAAjC,MAAM,GAAG,SAAwB;gBACvC,sBAAO,UAAG,MAAM,CAAC,YAAY,cAAI,MAAM,CAAC,OAAO,cAAI,GAAG,CAAE,EAAC;;;KAC1D,CAAC;AAJW,QAAA,mBAAmB,uBAI9B"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,65 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@catladder/cli",
|
|
3
|
+
"description": "Panter cli tool for Kubernetes",
|
|
3
4
|
"author": "Marco Wettstein <maw@panter.ch>",
|
|
4
5
|
"homepage": "https://git.panter.ch/catladder/catladder/#readme",
|
|
5
6
|
"bugs": "https://git.panter.ch/catladder/catladder/issues",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://git.panter.ch/catladder/catladder.git",
|
|
10
|
+
"directory": "cli"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"GitLab",
|
|
14
|
+
"cloud",
|
|
15
|
+
"cli",
|
|
16
|
+
"gitlab-ci",
|
|
17
|
+
"ci/cd",
|
|
18
|
+
"pipeline",
|
|
19
|
+
"deployment",
|
|
20
|
+
"devops",
|
|
21
|
+
"automation",
|
|
22
|
+
"typescript"
|
|
23
|
+
],
|
|
24
|
+
"contributors": [
|
|
25
|
+
{
|
|
26
|
+
"name": "Marco Wettstein",
|
|
27
|
+
"email": "maw@panter.ch"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "Michael Leu",
|
|
31
|
+
"email": "leu@panter.ch"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "Luboš Matejčík",
|
|
35
|
+
"email": "lma@panter.ch"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "Kaspar Vollenweider",
|
|
39
|
+
"email": "vok@panter.ch"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "Silvan Adrian",
|
|
43
|
+
"email": "sia@panter.ch"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "Stefan Bakocs",
|
|
47
|
+
"email": "stb@panter.ch"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"name": "Lukas Brezina",
|
|
51
|
+
"email": "brl@panter.ch"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
6
54
|
"license": "MIT",
|
|
55
|
+
"version": "0.0.0-yarn-cache-a697966f",
|
|
7
56
|
"scripts": {
|
|
8
57
|
"lint": "eslint \"src/**/*.ts\"",
|
|
9
58
|
"lint:fix": "eslint \"src/**/*.ts\" --fix",
|
|
10
59
|
"test": "yarn run lint",
|
|
11
|
-
"build": "yarn
|
|
60
|
+
"build": "yarn build:compile && yarn build:bundle",
|
|
61
|
+
"build:bundle": "./scripts/bundle",
|
|
62
|
+
"build:compile": "yarn tsc",
|
|
12
63
|
"build:watch": "yarn tsc -w"
|
|
13
64
|
},
|
|
14
65
|
"bin": {
|
|
@@ -16,34 +67,19 @@
|
|
|
16
67
|
"catladder": "./bin/catladder"
|
|
17
68
|
},
|
|
18
69
|
"dependencies": {
|
|
19
|
-
"
|
|
20
|
-
"@kubernetes/client-node": "^0.16.2",
|
|
21
|
-
"child-process-promise": "^2.2.1",
|
|
22
|
-
"command-exists-promise": "^2.0.2",
|
|
23
|
-
"common-tags": "^1.8.0",
|
|
24
|
-
"dayjs": "^1.10.4",
|
|
25
|
-
"fs-extra": "^7.0.1",
|
|
26
|
-
"gitlab": "^4.4.1",
|
|
27
|
-
"js-yaml": "^4.1.0",
|
|
28
|
-
"lodash": "^4.17.21",
|
|
29
|
-
"memoizee": "^0.4.14",
|
|
30
|
-
"node-fetch": "^2.3.0",
|
|
31
|
-
"open": "^8.4.0",
|
|
32
|
-
"prettier": "^2.5.1",
|
|
33
|
-
"tmp-promise": "^2.0.2",
|
|
34
|
-
"update-notifier": "^2.5.0",
|
|
35
|
-
"vorpal": "^1.12.0",
|
|
36
|
-
"zx": "^4.3.0"
|
|
70
|
+
"ts-node": "^10.9.1"
|
|
37
71
|
},
|
|
38
72
|
"engines": {
|
|
39
73
|
"node": ">=12.0.0"
|
|
40
74
|
},
|
|
41
75
|
"devDependencies": {
|
|
76
|
+
"@catladder/pipeline": "0.0.0-yarn-cache-a697966f",
|
|
77
|
+
"@kubernetes/client-node": "^0.16.2",
|
|
42
78
|
"@tsconfig/node14": "^1.0.1",
|
|
43
79
|
"@types/common-tags": "^1.8.0",
|
|
44
80
|
"@types/fs-extra": "^5.0.4",
|
|
45
81
|
"@types/js-yaml": "^4.0.5",
|
|
46
|
-
"@types/lodash": "^4.14.
|
|
82
|
+
"@types/lodash": "^4.14.185",
|
|
47
83
|
"@types/memoizee": "^0.4.2",
|
|
48
84
|
"@types/node-fetch": "^2.1.4",
|
|
49
85
|
"@types/request": "^2.48.1",
|
|
@@ -52,9 +88,24 @@
|
|
|
52
88
|
"@types/vorpal": "^1.12.0",
|
|
53
89
|
"@types/websocket": "^0.0.40",
|
|
54
90
|
"@types/yargs": "^13.0.0",
|
|
91
|
+
"child-process-promise": "^2.2.1",
|
|
92
|
+
"clipboardy": "^2.0.0",
|
|
93
|
+
"command-exists-promise": "^2.0.2",
|
|
94
|
+
"common-tags": "^1.8.0",
|
|
95
|
+
"connection-string-parser": "^1.0.4",
|
|
96
|
+
"dayjs": "^1.10.4",
|
|
55
97
|
"eslint": "^8.7.0",
|
|
56
|
-
"
|
|
98
|
+
"fs-extra": "^7.0.1",
|
|
99
|
+
"gitlab": "^4.4.1",
|
|
100
|
+
"js-yaml": "^4.1.0",
|
|
101
|
+
"lodash": "^4.17.21",
|
|
102
|
+
"memoizee": "^0.4.14",
|
|
103
|
+
"node-fetch": "^2.3.0",
|
|
104
|
+
"open": "^8.4.0",
|
|
105
|
+
"prettier": "^2.5.1",
|
|
106
|
+
"tmp-promise": "^2.0.2",
|
|
107
|
+
"typescript": "^4.5.4",
|
|
108
|
+
"vorpal": "^1.12.0"
|
|
57
109
|
},
|
|
58
|
-
"version": "0.0.0-waitfor-deploy-31ebcf14",
|
|
59
110
|
"stableVersion": "0.0.0"
|
|
60
111
|
}
|
package/scripts/bundle
ADDED
|
@@ -1,69 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
components: Record<string, ComponentConfig>
|
|
7
|
-
) => {
|
|
8
|
-
const gitRoot = await getGitRoot();
|
|
9
|
-
const currentDir = process.cwd();
|
|
10
|
-
return Object.keys(components).find((c) =>
|
|
11
|
-
currentDir.startsWith(join(gitRoot, components[c].dir))
|
|
12
|
-
);
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const sanitizeEnvVarName = (name: string) => name.replace(/[\s\-.]+/g, "_");
|
|
16
|
-
|
|
17
|
-
const getAllVariablesToPrint = async (
|
|
18
|
-
config: Config,
|
|
19
|
-
choice?: {
|
|
20
|
-
env?: string;
|
|
21
|
-
componentName?: string;
|
|
22
|
-
}
|
|
23
|
-
) => {
|
|
24
|
-
const env = choice?.env ?? "local";
|
|
25
|
-
const { components } = config;
|
|
26
|
-
|
|
27
|
-
const currentComponent =
|
|
28
|
-
choice?.componentName ?? (await getCurrentComponentName(components));
|
|
1
|
+
import { getProjectConfig } from "../../config/getProjectConfig";
|
|
2
|
+
import { printVariables } from "./printVariables";
|
|
3
|
+
import type { Choice } from "./types";
|
|
4
|
+
import { writeDotEnvFiles } from "./writeDotEnvFiles";
|
|
5
|
+
import { writeDTsFiles } from "./writeEnvDTs";
|
|
29
6
|
|
|
30
|
-
|
|
31
|
-
if (currentComponent) {
|
|
32
|
-
variables = await getEnvVars(null, env, currentComponent);
|
|
33
|
-
} else {
|
|
34
|
-
// when in a monorep and not in a subapp, merge all env vars.
|
|
35
|
-
// this is not 100% correct, but better than not exporting any vars at all
|
|
36
|
-
// so we also add prefixed variants
|
|
37
|
-
variables = await Object.keys(components).reduce(
|
|
38
|
-
async (acc, componentName) => {
|
|
39
|
-
const subappvars = await getEnvVars(null, env, componentName);
|
|
40
|
-
return {
|
|
41
|
-
...(await acc),
|
|
42
|
-
...subappvars,
|
|
43
|
-
// also add prefixed variants in case
|
|
44
|
-
...Object.fromEntries(
|
|
45
|
-
Object.entries(subappvars).map(([key, value]) => [
|
|
46
|
-
`${sanitizeEnvVarName(componentName.toUpperCase())}_${key}`,
|
|
47
|
-
value,
|
|
48
|
-
])
|
|
49
|
-
),
|
|
50
|
-
};
|
|
51
|
-
},
|
|
52
|
-
{}
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
return variables;
|
|
56
|
-
};
|
|
57
|
-
export default async (choice?: { env?: string; componentName?: string }) => {
|
|
7
|
+
export default async (choice?: Choice) => {
|
|
58
8
|
const config = await getProjectConfig();
|
|
59
9
|
if (!config) {
|
|
60
10
|
return;
|
|
61
11
|
}
|
|
62
|
-
const variables = await getAllVariablesToPrint(config, choice);
|
|
63
12
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
);
|
|
13
|
+
await printVariables(config, choice);
|
|
14
|
+
|
|
15
|
+
await writeDotEnvFiles(config, choice);
|
|
16
|
+
|
|
17
|
+
await writeDTsFiles(config, choice);
|
|
69
18
|
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { Config } from "@catladder/pipeline";
|
|
2
|
+
import { getEnvVarsResolved } from "../../config/getProjectConfig";
|
|
3
|
+
import type { Choice, Variables } from "./types";
|
|
4
|
+
import {
|
|
5
|
+
getCurrentComponentAndEnvFromChoice,
|
|
6
|
+
makeKeyValueString,
|
|
7
|
+
sanitizeEnvVarName,
|
|
8
|
+
} from "./utils";
|
|
9
|
+
|
|
10
|
+
const getAllVariablesToPrint = async (config: Config, choice?: Choice) => {
|
|
11
|
+
const { env, currentComponent } = await getCurrentComponentAndEnvFromChoice(
|
|
12
|
+
config,
|
|
13
|
+
choice
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
if (currentComponent) {
|
|
17
|
+
// don't print vars if dotenv is enabled
|
|
18
|
+
if (config.components[currentComponent].dotEnv) {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
return await getEnvVarsResolved(null, env, currentComponent);
|
|
22
|
+
} else {
|
|
23
|
+
// when in a monorep and not in a subapp, merge all env vars.
|
|
24
|
+
// this is not 100% correct, but better than not exporting any vars at all
|
|
25
|
+
// so we also add prefixed variants
|
|
26
|
+
return await Object.keys(config.components).reduce(
|
|
27
|
+
async (acc, componentName) => {
|
|
28
|
+
// don't print vars if dotenv is enabled
|
|
29
|
+
if (config.components[componentName].dotEnv) {
|
|
30
|
+
return await acc;
|
|
31
|
+
}
|
|
32
|
+
const subappvars = await getEnvVarsResolved(null, env, componentName);
|
|
33
|
+
delete subappvars["_ALL_ENV_VAR_KEYS"];
|
|
34
|
+
return {
|
|
35
|
+
...(await acc),
|
|
36
|
+
...subappvars,
|
|
37
|
+
// also add prefixed variants in case
|
|
38
|
+
...Object.fromEntries(
|
|
39
|
+
Object.entries(subappvars).map(([key, value]) => [
|
|
40
|
+
`${sanitizeEnvVarName(componentName.toUpperCase())}_${key}`,
|
|
41
|
+
value,
|
|
42
|
+
])
|
|
43
|
+
),
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
Promise.resolve({} as Record<string, string>)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const printVariables = async (config: Config, choice?: Choice) => {
|
|
52
|
+
const variables = await getAllVariablesToPrint(config, choice);
|
|
53
|
+
|
|
54
|
+
console.log(makeExportKeyValuestring(variables));
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const makeExportKeyValuestring = (variables: Variables) =>
|
|
58
|
+
makeKeyValueString(variables, "export ");
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Config } from "@catladder/pipeline";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
import { getGitRoot } from "../../utils/projects";
|
|
4
|
+
import type { Choice, Variables } from "./types";
|
|
5
|
+
export const getComponentFullPath = (
|
|
6
|
+
gitRoot: string,
|
|
7
|
+
config: Config,
|
|
8
|
+
componentName: string
|
|
9
|
+
) => {
|
|
10
|
+
return join(gitRoot, config.components[componentName].dir);
|
|
11
|
+
};
|
|
12
|
+
const getCurrentComponentName = async (config: Config) => {
|
|
13
|
+
const gitRoot = await getGitRoot();
|
|
14
|
+
const currentDir = process.cwd();
|
|
15
|
+
return Object.keys(config.components).find((c) =>
|
|
16
|
+
currentDir.startsWith(getComponentFullPath(gitRoot, config, c))
|
|
17
|
+
);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const getCurrentComponentAndEnvFromChoice = async (
|
|
21
|
+
config: Config,
|
|
22
|
+
choice?: Choice
|
|
23
|
+
) => {
|
|
24
|
+
const env = choice?.env ?? "local";
|
|
25
|
+
const currentComponent =
|
|
26
|
+
choice?.componentName ?? (await getCurrentComponentName(config));
|
|
27
|
+
|
|
28
|
+
return {
|
|
29
|
+
currentComponent,
|
|
30
|
+
env,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const makeKeyValueString = (variables: Variables, keyPrefix = "") =>
|
|
35
|
+
Object.entries(variables)
|
|
36
|
+
.map(([key, value]) => `${keyPrefix}${key}='${value}'`)
|
|
37
|
+
.join("\n");
|
|
38
|
+
|
|
39
|
+
export const sanitizeMultiLine = (variables: Variables) => {
|
|
40
|
+
return Object.fromEntries(
|
|
41
|
+
Object.entries(variables).map(([key, value]) => [
|
|
42
|
+
key,
|
|
43
|
+
value.replaceAll("\n", "\\n"),
|
|
44
|
+
])
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const sanitizeEnvVarName = (name: string) =>
|
|
49
|
+
name.replace(/[\s\-.]+/g, "_");
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Config } from "@catladder/pipeline";
|
|
2
|
+
import { writeFile } from "fs-extra";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
import { getEnvVarsResolved } from "../../config/getProjectConfig";
|
|
5
|
+
import { getGitRoot } from "../../utils/projects";
|
|
6
|
+
import type { Choice } from "./types";
|
|
7
|
+
import {
|
|
8
|
+
getComponentFullPath,
|
|
9
|
+
getCurrentComponentAndEnvFromChoice,
|
|
10
|
+
makeKeyValueString,
|
|
11
|
+
sanitizeMultiLine,
|
|
12
|
+
} from "./utils";
|
|
13
|
+
|
|
14
|
+
export const writeDotEnvFiles = async (config: Config, choice?: Choice) => {
|
|
15
|
+
const { env, currentComponent } = await getCurrentComponentAndEnvFromChoice(
|
|
16
|
+
config,
|
|
17
|
+
choice
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
const componentsWithEnabledDotEnvWrite = Object.entries(config.components)
|
|
21
|
+
.filter(([, component]) => component?.dotEnv)
|
|
22
|
+
.map(([componentName]) => componentName);
|
|
23
|
+
|
|
24
|
+
const componentsToActuallyWriteDotEnvNow = currentComponent
|
|
25
|
+
? componentsWithEnabledDotEnvWrite.includes(currentComponent)
|
|
26
|
+
? [currentComponent]
|
|
27
|
+
: []
|
|
28
|
+
: componentsWithEnabledDotEnvWrite;
|
|
29
|
+
const gitRoot = await getGitRoot();
|
|
30
|
+
|
|
31
|
+
for (const componentName of componentsToActuallyWriteDotEnvNow) {
|
|
32
|
+
const variables = await getEnvVarsResolved(null, env, componentName);
|
|
33
|
+
delete variables["_ALL_ENV_VAR_KEYS"];
|
|
34
|
+
const componentDir = getComponentFullPath(gitRoot, config, componentName);
|
|
35
|
+
const filePath = join(componentDir, ".env");
|
|
36
|
+
// many .dotenv don't like multiline values, so we sanitize them here
|
|
37
|
+
const variablesSanitized = sanitizeMultiLine(variables);
|
|
38
|
+
await writeFile(
|
|
39
|
+
filePath,
|
|
40
|
+
"# automatically created by catladder. Do not modify!\n\n" +
|
|
41
|
+
makeKeyValueString(variablesSanitized)
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { Config } from "@catladder/pipeline";
|
|
2
|
+
import { writeFile } from "fs-extra";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
import { getEnvironment } from "../../config/getProjectConfig";
|
|
5
|
+
import { getGitRoot } from "../../utils/projects";
|
|
6
|
+
import type { Choice } from "./types";
|
|
7
|
+
import {
|
|
8
|
+
getComponentFullPath,
|
|
9
|
+
getCurrentComponentAndEnvFromChoice,
|
|
10
|
+
} from "./utils";
|
|
11
|
+
|
|
12
|
+
export const writeDTsFiles = async (config: Config, choice?: Choice) => {
|
|
13
|
+
const { env, currentComponent } = await getCurrentComponentAndEnvFromChoice(
|
|
14
|
+
config,
|
|
15
|
+
choice
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
const componentsWithEnabledEnvDTsWrite = Object.entries(config.components)
|
|
19
|
+
.filter(([, component]) => component?.envDTs)
|
|
20
|
+
.map(([componentName]) => componentName);
|
|
21
|
+
|
|
22
|
+
const componentsToActuallyWriteEnvDts = currentComponent
|
|
23
|
+
? componentsWithEnabledEnvDTsWrite.includes(currentComponent)
|
|
24
|
+
? [currentComponent]
|
|
25
|
+
: []
|
|
26
|
+
: componentsWithEnabledEnvDTsWrite;
|
|
27
|
+
const gitRoot = await getGitRoot();
|
|
28
|
+
|
|
29
|
+
for (const componentName of componentsToActuallyWriteEnvDts) {
|
|
30
|
+
const envNames = await getEnvsForDTs(env, componentName);
|
|
31
|
+
const envDTsContent = createEnvDTsContent(envNames);
|
|
32
|
+
|
|
33
|
+
const componentDir = getComponentFullPath(gitRoot, config, componentName);
|
|
34
|
+
const filePath = join(componentDir, "env.d.ts");
|
|
35
|
+
await writeFile(filePath, envDTsContent);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
async function getEnvsForDTs(
|
|
40
|
+
env: string,
|
|
41
|
+
componentName: string
|
|
42
|
+
): Promise<string[]> {
|
|
43
|
+
const environment = await getEnvironment(env, componentName);
|
|
44
|
+
const allEnvKeys = Object.keys(environment.envVars);
|
|
45
|
+
const hiddenEnvKeys = new Set(
|
|
46
|
+
environment.secretEnvVarKeys
|
|
47
|
+
.filter((s) => s.hidden)
|
|
48
|
+
.map((s) => s.key)
|
|
49
|
+
.concat(["_ALL_ENV_VAR_KEYS"])
|
|
50
|
+
);
|
|
51
|
+
const dTsEnvKeys = allEnvKeys.filter((k) => !hiddenEnvKeys.has(k));
|
|
52
|
+
|
|
53
|
+
return dTsEnvKeys;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function createEnvDTsContent(envNames: string[]) {
|
|
57
|
+
return `/* tslint:disable prettier/prettier */
|
|
58
|
+
/* eslint-disable prettier/prettier */
|
|
59
|
+
/* prettier-ignore */
|
|
60
|
+
// automatically generated by catladder. Do not modify!
|
|
61
|
+
export {}
|
|
62
|
+
|
|
63
|
+
declare global {
|
|
64
|
+
namespace NodeJS {
|
|
65
|
+
interface ProcessEnv {
|
|
66
|
+
${envNames.map((name) => ` ${name}: string`).join("\n")}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
`;
|
|
71
|
+
}
|
package/src/apps/cli/cli.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import Vorpal from "vorpal";
|
|
2
2
|
// tslint:disable-next-line:no-var-requires
|
|
3
3
|
import packageInfos from "../../packageInfos";
|
|
4
|
-
import { stopAllPortForwards } from "../../utils/
|
|
4
|
+
import { stopAllPortForwards } from "../../utils/portForwards";
|
|
5
5
|
import general from "./commands/general";
|
|
6
6
|
import mongodb from "./commands/mongodb";
|
|
7
|
+
import cloudSQL from "./commands/cloudSQL";
|
|
7
8
|
import project from "./commands/project";
|
|
8
9
|
import theStuffThatReallyMatters from "./commands/theStuffThatReallyMatters";
|
|
9
10
|
|
|
@@ -29,6 +30,7 @@ export default async () => {
|
|
|
29
30
|
|
|
30
31
|
general(vorpal);
|
|
31
32
|
project(vorpal);
|
|
33
|
+
cloudSQL(vorpal);
|
|
32
34
|
mongodb(vorpal);
|
|
33
35
|
theStuffThatReallyMatters(vorpal);
|
|
34
36
|
|