@catladder/cli 0.0.0-main-c03ae42d → 0.0.0-main-209fcf0b

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.
@@ -45,6 +45,7 @@ var packageInfos_1 = __importDefault(require("../../packageInfos"));
45
45
  var portForward_1 = require("../../utils/portForward");
46
46
  var general_1 = __importDefault(require("./commands/general"));
47
47
  var mongodb_1 = __importDefault(require("./commands/mongodb"));
48
+ var cloudSQL_1 = __importDefault(require("./commands/cloudSQL"));
48
49
  var project_1 = __importDefault(require("./commands/project"));
49
50
  var theStuffThatReallyMatters_1 = __importDefault(require("./commands/theStuffThatReallyMatters"));
50
51
  var verify_1 = require("./verify");
@@ -69,6 +70,7 @@ exports["default"] = (function () { return __awaiter(void 0, void 0, void 0, fun
69
70
  (0, verify_1.verify)(vorpal);
70
71
  (0, general_1["default"])(vorpal);
71
72
  (0, project_1["default"])(vorpal);
73
+ (0, cloudSQL_1["default"])(vorpal);
72
74
  (0, mongodb_1["default"])(vorpal);
73
75
  (0, theStuffThatReallyMatters_1["default"])(vorpal);
74
76
  process.on("exit", function () {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/apps/cli/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,2CAA2C;AAC3C,oEAA8C;AAC9C,uDAA8D;AAC9D,+DAAyC;AACzC,+DAAyC;AACzC,+DAAyC;AACzC,mGAA6E;AAE7E,mCAAkC;AAClC,gFAA+E;AAE/E,sBAAe;;;;;gBACP,MAAM,GAAG,IAAI,mBAAM,EAAE,CAAC;gBAEtB,cAAc,GAAG,8CAA6B,yBAAY,CAAC,OAAO,CAAE,CAAC;gBAE3E,MAAM;qBACH,SAAS,CAAC,aAAa,CAAC,CAAC,2EAA2E;qBACpG,OAAO,CAAC,WAAW,CAAC;qBACpB,IAAI,EAAE;qBACN,GAAG,CAAC,EAAE,CAAC;qBACP,GAAG,CAAC,cAAc,CAAC;qBACnB,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEX,qBAAM,IAAA,qCAAiB,EAAC,MAAM,CAAC,EAAA;;gBAA/B,SAA+B,CAAC;gBAEhC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC;gBAEf,IAAA,oBAAO,EAAC,MAAM,CAAC,CAAC;gBAChB,IAAA,oBAAO,EAAC,MAAM,CAAC,CAAC;gBAChB,IAAA,oBAAO,EAAC,MAAM,CAAC,CAAC;gBAChB,IAAA,sCAAyB,EAAC,MAAM,CAAC,CAAC;gBAElC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;oBACjB,IAAA,iCAAmB,GAAE,CAAC;gBACxB,CAAC,CAAC,CAAC;;;;KACJ,EAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/apps/cli/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,2CAA2C;AAC3C,oEAA8C;AAC9C,uDAA8D;AAC9D,+DAAyC;AACzC,+DAAyC;AACzC,iEAA2C;AAC3C,+DAAyC;AACzC,mGAA6E;AAE7E,mCAAkC;AAClC,gFAA+E;AAE/E,sBAAe;;;;;gBACP,MAAM,GAAG,IAAI,mBAAM,EAAE,CAAC;gBAEtB,cAAc,GAAG,8CAA6B,yBAAY,CAAC,OAAO,CAAE,CAAC;gBAE3E,MAAM;qBACH,SAAS,CAAC,aAAa,CAAC,CAAC,2EAA2E;qBACpG,OAAO,CAAC,WAAW,CAAC;qBACpB,IAAI,EAAE;qBACN,GAAG,CAAC,EAAE,CAAC;qBACP,GAAG,CAAC,cAAc,CAAC;qBACnB,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEX,qBAAM,IAAA,qCAAiB,EAAC,MAAM,CAAC,EAAA;;gBAA/B,SAA+B,CAAC;gBAEhC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC;gBAEf,IAAA,oBAAO,EAAC,MAAM,CAAC,CAAC;gBAChB,IAAA,oBAAO,EAAC,MAAM,CAAC,CAAC;gBAChB,IAAA,qBAAQ,EAAC,MAAM,CAAC,CAAC;gBACjB,IAAA,oBAAO,EAAC,MAAM,CAAC,CAAC;gBAChB,IAAA,sCAAyB,EAAC,MAAM,CAAC,CAAC;gBAElC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;oBACjB,IAAA,iCAAmB,GAAE,CAAC;gBACxB,CAAC,CAAC,CAAC;;;;KACJ,EAAC"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ exports.__esModule = true;
39
+ var child_process_promise_1 = require("child-process-promise");
40
+ var createProxy = function (instance, port) { return __awaiter(void 0, void 0, void 0, function () {
41
+ var proxy, stop;
42
+ return __generator(this, function (_a) {
43
+ switch (_a.label) {
44
+ case 0:
45
+ proxy = (0, child_process_promise_1.spawn)("cloud_sql_proxy -instances ".concat(instance, "=tcp:").concat(port), [], { shell: "bash" });
46
+ // wait until it starts
47
+ return [4 /*yield*/, (0, child_process_promise_1.spawn)("echo -n \"Waiting for proxy\"\n until echo > /dev/tcp/localhost/".concat(port, "; do\n sleep 0.2\n echo -n \".\"\n done 2>/dev/null"), [], { shell: "bash" })];
48
+ case 1:
49
+ // wait until it starts
50
+ _a.sent();
51
+ stop = function () { return proxy.childProcess.kill(); };
52
+ process.on("beforeExit", stop);
53
+ return [2 /*return*/, {
54
+ stop: stop
55
+ }];
56
+ }
57
+ });
58
+ }); };
59
+ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void 0, function () {
60
+ return __generator(this, function (_a) {
61
+ return [2 /*return*/, vorpal
62
+ .command("cloud-sql-restore-db", "restore a db from one source to another target")
63
+ .action(function restoreDb() {
64
+ return __awaiter(this, void 0, void 0, function () {
65
+ var sourceInstance, SOURCE_INSTANCE_PORT, TARGET_INSTANCE_PORT, sourceProxy, sourcePassword, sourceDbName, targetInstance, targetProxy, targetPassword, targetDbName, shouldContinue, targetPSQL, copyDBScript;
66
+ return __generator(this, function (_a) {
67
+ switch (_a.label) {
68
+ case 0: return [4 /*yield*/, this.prompt({
69
+ type: "input",
70
+ name: "sourceInstance",
71
+ message: "Source instance (connection string)? 🤔 "
72
+ })];
73
+ case 1:
74
+ sourceInstance = (_a.sent()).sourceInstance;
75
+ SOURCE_INSTANCE_PORT = 54399;
76
+ TARGET_INSTANCE_PORT = 54499;
77
+ return [4 /*yield*/, createProxy(sourceInstance, SOURCE_INSTANCE_PORT)];
78
+ case 2:
79
+ sourceProxy = _a.sent();
80
+ return [4 /*yield*/, this.prompt({
81
+ type: "input",
82
+ name: "sourcePassword",
83
+ message: "Source Password? 🤔 "
84
+ })];
85
+ case 3:
86
+ sourcePassword = (_a.sent()).sourcePassword;
87
+ return [4 /*yield*/, this.prompt({
88
+ type: "input",
89
+ name: "sourceDbName",
90
+ message: "Source DB name? 🤔 "
91
+ })];
92
+ case 4:
93
+ sourceDbName = (_a.sent()).sourceDbName;
94
+ return [4 /*yield*/, this.prompt({
95
+ type: "input",
96
+ name: "targetInstance",
97
+ message: "Targe INSTANCE (connection string)? 🤔 "
98
+ })];
99
+ case 5:
100
+ targetInstance = (_a.sent()).targetInstance;
101
+ return [4 /*yield*/, createProxy(targetInstance, TARGET_INSTANCE_PORT)];
102
+ case 6:
103
+ targetProxy = _a.sent();
104
+ return [4 /*yield*/, this.prompt({
105
+ type: "input",
106
+ name: "targetPassword",
107
+ message: "Target Password? 🤔 "
108
+ })];
109
+ case 7:
110
+ targetPassword = (_a.sent()).targetPassword;
111
+ return [4 /*yield*/, this.prompt({
112
+ type: "input",
113
+ name: "targetDbName",
114
+ message: "Target DB name? 🤔 "
115
+ })];
116
+ case 8:
117
+ targetDbName = (_a.sent()).targetDbName;
118
+ return [4 /*yield*/, this.prompt({
119
+ type: "confirm",
120
+ name: "shouldContinue",
121
+ message: "This will drop ".concat(targetInstance, "/").concat(targetDbName, " and replace it with ").concat(sourceInstance, "/").concat(sourceDbName, ". Continue? \uD83E\uDD14 ")
122
+ })];
123
+ case 9:
124
+ shouldContinue = (_a.sent()).shouldContinue;
125
+ if (!shouldContinue) {
126
+ return [2 /*return*/];
127
+ }
128
+ targetPSQL = function (command) {
129
+ return "PGPASSWORD=".concat(targetPassword, " psql -p ").concat(TARGET_INSTANCE_PORT, " --host=localhost --user=postgres -q ").concat(command);
130
+ };
131
+ copyDBScript = "\n set -e\n \n \n\n dumptmp=$(mktemp /tmp/dump.XXXXXX)\n\n echo \"Dumping file to $dumptmp\"\n pg_dump --dbname=postgres://postgres:".concat(sourcePassword, "@localhost:").concat(SOURCE_INSTANCE_PORT, "/").concat(sourceDbName, " --no-owner --no-privileges > $dumptmp\n echo \"dump done\"\n ").concat(targetPSQL("-c 'drop database \"".concat(targetDbName, "\" WITH (FORCE)' 1> /dev/null || true")), "\n ").concat(targetPSQL("-c 'create database \"".concat(targetDbName, "\"' 1> /dev/null")), "\n echo \"Restoring dump...\"\n ").concat(targetPSQL("\"".concat(targetDbName, "\" < $dumptmp 1> /dev/null")), "\n \n\n echo \"Clean up...\"\n set +e\n rm $dumptmp\n echo \"\n\uD83D\uDC31 Done!\"\n ");
132
+ _a.label = 10;
133
+ case 10:
134
+ _a.trys.push([10, , 12, 13]);
135
+ return [4 /*yield*/, (0, child_process_promise_1.spawn)(copyDBScript, [], { shell: "bash", stdio: "inherit" })];
136
+ case 11:
137
+ _a.sent();
138
+ return [3 /*break*/, 13];
139
+ case 12:
140
+ sourceProxy.stop();
141
+ targetProxy.stop();
142
+ return [7 /*endfinally*/];
143
+ case 13: return [2 /*return*/];
144
+ }
145
+ });
146
+ });
147
+ })];
148
+ });
149
+ }); });
150
+ //# sourceMappingURL=commandRestoreDb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandRestoreDb.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/cloudSQL/commandRestoreDb.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAA8C;AAG9C,IAAM,WAAW,GAAG,UAAO,QAAgB,EAAE,IAAY;;;;;gBACjD,KAAK,GAAG,IAAA,6BAAK,EACjB,qCAA8B,QAAQ,kBAAQ,IAAI,CAAE,EACpD,EAAE,EACF,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;gBACF,uBAAuB;gBACvB,qBAAM,IAAA,6BAAK,EACT,+EACoC,IAAI,2EAGrB,EACnB,EAAE,EACF,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,EAAA;;gBATD,uBAAuB;gBACvB,SAQC,CAAC;gBACI,IAAI,GAAG,cAAM,OAAA,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAzB,CAAyB,CAAC;gBAC7C,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAE/B,sBAAO;wBACL,IAAI,MAAA;qBACL,EAAC;;;KACH,CAAC;AAEF,sBAAe,UAAO,MAAc;;QAClC,sBAAA,MAAM;iBACH,OAAO,CACN,sBAAsB,EACtB,gDAAgD,CACjD;iBACA,MAAM,CAAC,SAAe,SAAS;;;;;oCACH,qBAAM,IAAI,CAAC,MAAM,CAAC;oCAC3C,IAAI,EAAE,OAAO;oCACb,IAAI,EAAE,gBAAgB;oCAEtB,OAAO,EAAE,0CAA0C;iCACpD,CAAC,EAAA;;gCALM,cAAc,GAAK,CAAA,SAKzB,CAAA,eALoB;gCAOhB,oBAAoB,GAAG,KAAK,CAAC;gCAC7B,oBAAoB,GAAG,KAAK,CAAC;gCAEf,qBAAM,WAAW,CACnC,cAAc,EACd,oBAAoB,CACrB,EAAA;;gCAHK,WAAW,GAAG,SAGnB;gCAE0B,qBAAM,IAAI,CAAC,MAAM,CAAC;wCAC3C,IAAI,EAAE,OAAO;wCACb,IAAI,EAAE,gBAAgB;wCAEtB,OAAO,EAAE,sBAAsB;qCAChC,CAAC,EAAA;;gCALM,cAAc,GAAK,CAAA,SAKzB,CAAA,eALoB;gCAOG,qBAAM,IAAI,CAAC,MAAM,CAAC;wCACzC,IAAI,EAAE,OAAO;wCACb,IAAI,EAAE,cAAc;wCAEpB,OAAO,EAAE,qBAAqB;qCAC/B,CAAC,EAAA;;gCALM,YAAY,GAAK,CAAA,SAKvB,CAAA,aALkB;gCAOO,qBAAM,IAAI,CAAC,MAAM,CAAC;wCAC3C,IAAI,EAAE,OAAO;wCACb,IAAI,EAAE,gBAAgB;wCAEtB,OAAO,EAAE,0CAA0C;qCACpD,CAAC,EAAA;;gCALM,cAAc,GAAK,CAAA,SAKzB,CAAA,eALoB;gCAOF,qBAAM,WAAW,CACnC,cAAc,EACd,oBAAoB,CACrB,EAAA;;gCAHK,WAAW,GAAG,SAGnB;gCAE0B,qBAAM,IAAI,CAAC,MAAM,CAAC;wCAC3C,IAAI,EAAE,OAAO;wCACb,IAAI,EAAE,gBAAgB;wCAEtB,OAAO,EAAE,sBAAsB;qCAChC,CAAC,EAAA;;gCALM,cAAc,GAAK,CAAA,SAKzB,CAAA,eALoB;gCAOG,qBAAM,IAAI,CAAC,MAAM,CAAC;wCACzC,IAAI,EAAE,OAAO;wCACb,IAAI,EAAE,cAAc;wCAEpB,OAAO,EAAE,qBAAqB;qCAC/B,CAAC,EAAA;;gCALM,YAAY,GAAK,CAAA,SAKvB,CAAA,aALkB;gCAOO,qBAAM,IAAI,CAAC,MAAM,CAAC;wCAC3C,IAAI,EAAE,SAAS;wCACf,IAAI,EAAE,gBAAgB;wCACtB,OAAO,EAAE,yBAAkB,cAAc,cAAI,YAAY,kCAAwB,cAAc,cAAI,YAAY,8BAAiB;qCACjI,CAAC,EAAA;;gCAJM,cAAc,GAAK,CAAA,SAIzB,CAAA,eAJoB;gCAMtB,IAAI,CAAC,cAAc,EAAE;oCACnB,sBAAO;iCACR;gCAEK,UAAU,GAAG,UAAC,OAAe;oCACjC,OAAA,qBAAc,cAAc,sBAAY,oBAAoB,kDAAwC,OAAO,CAAE;gCAA7G,CAA6G,CAAC;gCAE1G,YAAY,GAAG,yKAQkB,cAAc,wBAAc,oBAAoB,cAAI,YAAY,qFAErG,UAAU,CACV,8BAAsB,YAAY,0CAAsC,CACzE,qBACC,UAAU,CAAC,gCAAwB,YAAY,qBAAiB,CAAC,2DAEjE,UAAU,CAAC,YAAI,YAAY,+BAA2B,CAAC,qHAOxD,CAAC;;;;gCAEA,qBAAM,IAAA,6BAAK,EAAC,YAAY,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAA;;gCAAlE,SAAkE,CAAC;;;gCAEnE,WAAW,CAAC,IAAI,EAAE,CAAC;gCACnB,WAAW,CAAC,IAAI,EAAE,CAAC;;;;;;aAEtB,CAAC,EAAA;;KAAA,EAAC"}
@@ -0,0 +1,3 @@
1
+ import type Vorpal from "vorpal";
2
+ declare const _default: (vorpal: Vorpal) => Promise<void>;
3
+ export default _default;
@@ -35,46 +35,16 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
36
  }
37
37
  };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
38
41
  exports.__esModule = true;
39
- var getProjectConfig_1 = require("../../../../config/getProjectConfig");
40
- var autocompletions_1 = require("./utils/autocompletions");
42
+ //import commandInitProject from "./commandInitProject.old";
43
+ var commandRestoreDb_1 = __importDefault(require("./commandRestoreDb"));
41
44
  exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void 0, function () {
42
- var _a, _b;
43
- return __generator(this, function (_c) {
44
- switch (_c.label) {
45
- case 0:
46
- _b = (_a = vorpal
47
- .command("copy-db <envComponent>", "replace local db with the one from an env"))
48
- .autocomplete;
49
- return [4 /*yield*/, (0, autocompletions_1.envAndComponents)()];
50
- case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])
51
- .action(function copyDB(_a) {
52
- var envComponent = _a.envComponent;
53
- return __awaiter(this, void 0, void 0, function () {
54
- var _b, env, componentName, _c, customerName, appName, shouldContinue;
55
- return __generator(this, function (_d) {
56
- switch (_d.label) {
57
- case 0:
58
- _b = (0, getProjectConfig_1.parseChoice)(envComponent), env = _b.env, componentName = _b.componentName;
59
- return [4 /*yield*/, (0, getProjectConfig_1.getProjectConfig)()];
60
- case 1:
61
- _c = _d.sent(), customerName = _c.customerName, appName = _c.appName;
62
- return [4 /*yield*/, this.prompt({
63
- type: "confirm",
64
- name: "shouldContinue",
65
- message: "This will drop your local database and replace it with the remote one. Continue? 🤔 "
66
- })];
67
- case 2:
68
- shouldContinue = (_d.sent()).shouldContinue;
69
- if (!shouldContinue) {
70
- return [2 /*return*/];
71
- }
72
- return [2 /*return*/];
73
- }
74
- });
75
- });
76
- })];
77
- }
45
+ return __generator(this, function (_a) {
46
+ (0, commandRestoreDb_1["default"])(vorpal);
47
+ return [2 /*return*/];
78
48
  });
79
49
  }); });
80
- //# sourceMappingURL=commandCopyDB.js.map
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/cloudSQL/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4DAA4D;AAE5D,wEAAkD;AAElD,sBAAe,UAAO,MAAc;;QAClC,IAAA,6BAAgB,EAAC,MAAM,CAAC,CAAC;;;KAC1B,EAAC"}
@@ -41,7 +41,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
41
41
  exports.__esModule = true;
42
42
  var commandCloudSqlProxy_1 = __importDefault(require("./commandCloudSqlProxy"));
43
43
  var commandConfigSecrets_1 = __importDefault(require("./commandConfigSecrets"));
44
- var commandCopyDB_1 = __importDefault(require("./commandCopyDB"));
45
44
  var commandDeletePods_1 = __importDefault(require("./commandDeletePods"));
46
45
  var commandDeleteProject_1 = __importDefault(require("./commandDeleteProject"));
47
46
  var commandEnvVars_1 = __importDefault(require("./commandEnvVars"));
@@ -84,7 +83,6 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
84
83
  (0, commandConfigSecrets_1["default"])(vorpal);
85
84
  (0, commandSecretsClearBackups_1["default"])(vorpal);
86
85
  (0, commandDeletePods_1["default"])(vorpal);
87
- (0, commandCopyDB_1["default"])(vorpal);
88
86
  (0, commandGetShell_1["default"])(vorpal);
89
87
  (0, commandPortForward_1["default"])(vorpal);
90
88
  (0, commandGitlabCi_1["default"])(vorpal);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/project/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gFAA0D;AAC1D,gFAA0D;AAC1D,kEAA4C;AAC5C,0EAAoD;AACpD,gFAA0D;AAC1D,oEAA8C;AAC9C,0FAAoE;AACpE,sEAAgD;AAChD,sEAAgD;AAChD,gEAA0C;AAC1C,4DAA4D;AAC5D,sEAAgD;AAChD,8EAAwD;AACxD,wEAAkD;AAClD,wFAAkE;AAClE,gFAA0D;AAC1D,oEAA8C;AAC9C,oEAA8C;AAC9C,sEAAgD;AAChD,8EAAwD;AACxD,4EAAsD;AACtD,4EAAsD;AACtD,kFAA4D;AAE5D,kFAA4D;AAC5D,4FAAsE;AAEtE,sBAAe,UAAO,MAAc;;QAClC,IAAA,yBAAY,EAAC,MAAM,CAAC,CAAC;QAErB,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;QAEvB,IAAA,6BAAgB,EAAC,MAAM,CAAC,CAAC;QACzB,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;QACxB,IAAA,gCAAmB,EAAC,MAAM,CAAC,CAAC;QAC5B,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;QAE7B,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;QAE7B,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;QAExB,IAAA,qCAAwB,EAAC,MAAM,CAAC,CAAC;QAEjC,IAAA,+BAAkB,EAAC,MAAM,CAAC,CAAC;QAC3B,IAAA,kCAAqB,EAAC,MAAM,CAAC,CAAC;QAC9B,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;QAC7B,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;QACvB,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;QACvB,IAAA,kCAAqB,EAAC,MAAM,CAAC,CAAC;QAC9B,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;QAC7B,IAAA,uCAA0B,EAAC,MAAM,CAAC,CAAC;QACnC,IAAA,8BAAiB,EAAC,MAAM,CAAC,CAAC;QAC1B,IAAA,0BAAa,EAAC,MAAM,CAAC,CAAC;QAEtB,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;QACxB,IAAA,+BAAkB,EAAC,MAAM,CAAC,CAAC;QAE3B,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;QAExB,IAAA,sCAAyB,EAAC,MAAM,CAAC,CAAC;QAClC,IAAA,gCAAmB,EAAC,MAAM,CAAC,CAAC;;;KAC7B,EAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/project/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gFAA0D;AAC1D,gFAA0D;AAE1D,0EAAoD;AACpD,gFAA0D;AAC1D,oEAA8C;AAC9C,0FAAoE;AACpE,sEAAgD;AAChD,sEAAgD;AAChD,gEAA0C;AAC1C,4DAA4D;AAC5D,sEAAgD;AAChD,8EAAwD;AACxD,wEAAkD;AAClD,wFAAkE;AAClE,gFAA0D;AAC1D,oEAA8C;AAC9C,oEAA8C;AAC9C,sEAAgD;AAChD,8EAAwD;AACxD,4EAAsD;AACtD,4EAAsD;AACtD,kFAA4D;AAE5D,kFAA4D;AAC5D,4FAAsE;AAEtE,sBAAe,UAAO,MAAc;;QAClC,IAAA,yBAAY,EAAC,MAAM,CAAC,CAAC;QAErB,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;QAEvB,IAAA,6BAAgB,EAAC,MAAM,CAAC,CAAC;QACzB,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;QACxB,IAAA,gCAAmB,EAAC,MAAM,CAAC,CAAC;QAC5B,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;QAE7B,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;QAE7B,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;QAExB,IAAA,qCAAwB,EAAC,MAAM,CAAC,CAAC;QAEjC,IAAA,+BAAkB,EAAC,MAAM,CAAC,CAAC;QAC3B,IAAA,kCAAqB,EAAC,MAAM,CAAC,CAAC;QAC9B,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;QAC7B,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;QACvB,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;QACvB,IAAA,kCAAqB,EAAC,MAAM,CAAC,CAAC;QAC9B,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;QAC7B,IAAA,uCAA0B,EAAC,MAAM,CAAC,CAAC;QACnC,IAAA,8BAAiB,EAAC,MAAM,CAAC,CAAC;QAE1B,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;QACxB,IAAA,+BAAkB,EAAC,MAAM,CAAC,CAAC;QAE3B,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;QAExB,IAAA,sCAAyB,EAAC,MAAM,CAAC,CAAC;QAClC,IAAA,gCAAmB,EAAC,MAAM,CAAC,CAAC;;;KAC7B,EAAC"}
@@ -23,7 +23,7 @@ var detectBuildConfig = function (gitlabCi) {
23
23
  return "meteor";
24
24
  }
25
25
  if (firstInclude.file === "rails-kubernetes.yml") {
26
- throw new Error("rails is not yet implemented");
26
+ return "rails";
27
27
  }
28
28
  };
29
29
  exports.detectBuildConfig = detectBuildConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"oldGitlabCi.js","sourceRoot":"","sources":["../../../../../src/apps/cli/verify/migration/oldGitlabCi.ts"],"names":[],"mappings":";;;AAkBO,IAAM,YAAY,GAAG,UAAC,QAAyB;;IACpD,OAAO,CAAA,MAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,OAAO,MAAK,qBAAqB,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEK,IAAM,iBAAiB,GAAG,UAC/B,QAAyB;IAEzB,IAAI,CAAC,IAAA,oBAAY,EAAC,QAAQ,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;KAC/C;IAED,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzC,IAAI,YAAY,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,UAAU,CAAC;IAE5D,IAAI,YAAY,CAAC,IAAI,KAAK,qBAAqB,EAAE;QAC/C,OAAO,MAAM,CAAC;KACf;IAED,IAAI,YAAY,CAAC,IAAI,KAAK,0BAA0B,EAAE;QACpD,OAAO,aAAa,CAAC;KACtB;IACD,IAAI,YAAY,CAAC,IAAI,KAAK,uBAAuB,EAAE;QACjD,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,YAAY,CAAC,IAAI,KAAK,sBAAsB,EAAE;QAChD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;AACH,CAAC,CAAC;AAzBW,QAAA,iBAAiB,qBAyB5B"}
1
+ {"version":3,"file":"oldGitlabCi.js","sourceRoot":"","sources":["../../../../../src/apps/cli/verify/migration/oldGitlabCi.ts"],"names":[],"mappings":";;;AAkBO,IAAM,YAAY,GAAG,UAAC,QAAyB;;IACpD,OAAO,CAAA,MAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,OAAO,MAAK,qBAAqB,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEK,IAAM,iBAAiB,GAAG,UAC/B,QAAyB;IAEzB,IAAI,CAAC,IAAA,oBAAY,EAAC,QAAQ,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;KAC/C;IAED,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzC,IAAI,YAAY,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,UAAU,CAAC;IAE5D,IAAI,YAAY,CAAC,IAAI,KAAK,qBAAqB,EAAE;QAC/C,OAAO,MAAM,CAAC;KACf;IAED,IAAI,YAAY,CAAC,IAAI,KAAK,0BAA0B,EAAE;QACpD,OAAO,aAAa,CAAC;KACtB;IACD,IAAI,YAAY,CAAC,IAAI,KAAK,uBAAuB,EAAE;QACjD,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,YAAY,CAAC,IAAI,KAAK,sBAAsB,EAAE;QAChD,OAAO,OAAO,CAAC;KAChB;AACH,CAAC,CAAC;AAzBW,QAAA,iBAAiB,qBAyB5B"}
@@ -39193,6 +39193,8 @@ var custom_1 = __nccwpck_require__(3437);
39193
39193
 
39194
39194
  var node_1 = __nccwpck_require__(6994);
39195
39195
 
39196
+ var rails_1 = __nccwpck_require__(4665);
39197
+
39196
39198
  __exportStar(__nccwpck_require__(1197), exports);
39197
39199
 
39198
39200
  __exportStar(__nccwpck_require__(6994), exports);
@@ -39236,6 +39238,12 @@ exports.BUILD_TYPES = {
39236
39238
  defaults: function () {
39237
39239
  return {};
39238
39240
  }
39241
+ },
39242
+ rails: {
39243
+ jobs: rails_1.createRailsJobs,
39244
+ defaults: function () {
39245
+ return {};
39246
+ }
39239
39247
  }
39240
39248
  };
39241
39249
 
@@ -39850,6 +39858,220 @@ exports.getYarnInstall = getYarnInstall;
39850
39858
 
39851
39859
  /***/ }),
39852
39860
 
39861
+ /***/ 8597:
39862
+ /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
39863
+
39864
+ "use strict";
39865
+
39866
+
39867
+ var __assign = this && this.__assign || function () {
39868
+ __assign = Object.assign || function (t) {
39869
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
39870
+ s = arguments[i];
39871
+
39872
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
39873
+ }
39874
+
39875
+ return t;
39876
+ };
39877
+
39878
+ return __assign.apply(this, arguments);
39879
+ };
39880
+
39881
+ exports.__esModule = true;
39882
+ exports.createRailsBuildJobs = void 0;
39883
+
39884
+ var docker_1 = __nccwpck_require__(3219);
39885
+
39886
+ var createRailsBuildJobs = function (context) {
39887
+ return [(0, docker_1.createDockerBuildJobBase)(context, {
39888
+ variables: __assign({
39889
+ CNB_BUILDER: "heroku/buildpacks:18",
39890
+ CNB_ENV_VARS: "BUNDLE_GIT__PANTER__CH",
39891
+ CNB_EXTRA_ARGS: "",
39892
+ CNB_PACK_VERSION: "0.20.0"
39893
+ }, context.componentConfig.build.extraVars),
39894
+ // custom script
39895
+ script: [docker_1.gitlabDockerLogin, "docker pull $DOCKER_CACHE_IMAGE || true", "wget --output-document=- https://github.com/buildpacks/pack/releases/download/v$CNB_PACK_VERSION/pack-v$CNB_PACK_VERSION-linux.tgz | tar -zx --directory /usr/local/bin pack", "chmod +x /usr/local/bin/pack", // replace private git ssh gem sources with https to make bundler with credentials via env var work
39896
+ // eslint-disable-next-line no-useless-escape
39897
+ "sed --in-place 's|git@([^:]*):|https://1/|g' Gemfile Gemfile.lock", "for v in $CNB_ENV_VARS; do env_args=\"$env_args --env $v\"; done", "pack build $DOCKER_IMAGE:$DOCKER_IMAGE_TAG --builder $CNB_BUILDER --publish --cache-image $DOCKER_CACHE_IMAGE $env_args $CNB_EXTRA_ARGS"]
39898
+ })];
39899
+ };
39900
+
39901
+ exports.createRailsBuildJobs = createRailsBuildJobs;
39902
+
39903
+ /***/ }),
39904
+
39905
+ /***/ 4665:
39906
+ /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
39907
+
39908
+ "use strict";
39909
+
39910
+
39911
+ var __read = this && this.__read || function (o, n) {
39912
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
39913
+ if (!m) return o;
39914
+ var i = m.call(o),
39915
+ r,
39916
+ ar = [],
39917
+ e;
39918
+
39919
+ try {
39920
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
39921
+ } catch (error) {
39922
+ e = {
39923
+ error: error
39924
+ };
39925
+ } finally {
39926
+ try {
39927
+ if (r && !r.done && (m = i["return"])) m.call(i);
39928
+ } finally {
39929
+ if (e) throw e.error;
39930
+ }
39931
+ }
39932
+
39933
+ return ar;
39934
+ };
39935
+
39936
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
39937
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
39938
+ if (ar || !(i in from)) {
39939
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
39940
+ ar[i] = from[i];
39941
+ }
39942
+ }
39943
+ return to.concat(ar || Array.prototype.slice.call(from));
39944
+ };
39945
+
39946
+ exports.__esModule = true;
39947
+ exports.createRailsJobs = void 0;
39948
+
39949
+ var build_1 = __nccwpck_require__(8597);
39950
+
39951
+ var test_1 = __nccwpck_require__(5444);
39952
+
39953
+ var createRailsJobs = function (context) {
39954
+ return __spreadArray(__spreadArray([], __read((0, test_1.createRailsTestJobs)(context)), false), __read((0, build_1.createRailsBuildJobs)(context)), false);
39955
+ };
39956
+
39957
+ exports.createRailsJobs = createRailsJobs;
39958
+
39959
+ /***/ }),
39960
+
39961
+ /***/ 5444:
39962
+ /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
39963
+
39964
+ "use strict";
39965
+
39966
+
39967
+ var __assign = this && this.__assign || function () {
39968
+ __assign = Object.assign || function (t) {
39969
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
39970
+ s = arguments[i];
39971
+
39972
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
39973
+ }
39974
+
39975
+ return t;
39976
+ };
39977
+
39978
+ return __assign.apply(this, arguments);
39979
+ };
39980
+
39981
+ var __read = this && this.__read || function (o, n) {
39982
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
39983
+ if (!m) return o;
39984
+ var i = m.call(o),
39985
+ r,
39986
+ ar = [],
39987
+ e;
39988
+
39989
+ try {
39990
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
39991
+ } catch (error) {
39992
+ e = {
39993
+ error: error
39994
+ };
39995
+ } finally {
39996
+ try {
39997
+ if (r && !r.done && (m = i["return"])) m.call(i);
39998
+ } finally {
39999
+ if (e) throw e.error;
40000
+ }
40001
+ }
40002
+
40003
+ return ar;
40004
+ };
40005
+
40006
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
40007
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40008
+ if (ar || !(i in from)) {
40009
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40010
+ ar[i] = from[i];
40011
+ }
40012
+ }
40013
+ return to.concat(ar || Array.prototype.slice.call(from));
40014
+ };
40015
+
40016
+ exports.__esModule = true;
40017
+ exports.createRailsTestJobs = void 0;
40018
+
40019
+ var utils_1 = __nccwpck_require__(7461);
40020
+
40021
+ var createRailsTestJobs = function (context) {
40022
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p; // don't run tests after release
40023
+
40024
+
40025
+ if (((_a = context.commitInfo) === null || _a === void 0 ? void 0 : _a.trigger) === "taggedRelease") {
40026
+ return [];
40027
+ }
40028
+
40029
+ var buildConfig = context.componentConfig.build;
40030
+ var base = {
40031
+ variables: (_b = buildConfig.extraVars) !== null && _b !== void 0 ? _b : {},
40032
+ stage: "test",
40033
+ needs: [],
40034
+ envMode: "none"
40035
+ };
40036
+ var defaultImage = "docker.io/ruby";
40037
+ var bundlerCacheDir = "tmp/cache";
40038
+ var bundlerInstall = ["bundle config set path '".concat(bundlerCacheDir, "'"), "bundle install -j $(nproc)"];
40039
+ var bundlerCache = {
40040
+ key: {
40041
+ files: ["Gemfile.lock"],
40042
+ prefix: "$CI_JOB_IMAGE"
40043
+ },
40044
+ paths: [bundlerCacheDir]
40045
+ };
40046
+ var auditJob = buildConfig.audit !== false ? __assign(__assign({
40047
+ name: "🛡 audit"
40048
+ }, base), {
40049
+ cache: undefined,
40050
+ image: (_d = (_c = buildConfig.audit) === null || _c === void 0 ? void 0 : _c.jobImage) !== null && _d !== void 0 ? _d : defaultImage,
40051
+ script: __spreadArray(["cd ".concat(context.componentConfig.dir)], __read((_f = (0, utils_1.ensureArray)((_e = buildConfig.audit) === null || _e === void 0 ? void 0 : _e.command)) !== null && _f !== void 0 ? _f : ["gem install bundler-audit", "bundle audit check"]), false),
40052
+ allow_failure: true
40053
+ }) : null;
40054
+ var lintJob = buildConfig.lint !== false ? __assign(__assign({
40055
+ name: "👮 lint"
40056
+ }, base), {
40057
+ cache: bundlerCache,
40058
+ image: (_h = (_g = buildConfig.lint) === null || _g === void 0 ? void 0 : _g.jobImage) !== null && _h !== void 0 ? _h : defaultImage,
40059
+ script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(bundlerInstall), false), __read((_k = (0, utils_1.ensureArray)((_j = buildConfig.lint) === null || _j === void 0 ? void 0 : _j.command)) !== null && _k !== void 0 ? _k : ["bundle exec rubocop"]), false)
40060
+ }) : null;
40061
+ var testJob = buildConfig.test !== false ? __assign(__assign({
40062
+ name: "🧪 test"
40063
+ }, base), {
40064
+ cache: bundlerCache,
40065
+ image: (_m = (_l = buildConfig.test) === null || _l === void 0 ? void 0 : _l.jobImage) !== null && _m !== void 0 ? _m : defaultImage,
40066
+ script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(bundlerInstall), false), __read((_p = (0, utils_1.ensureArray)((_o = buildConfig.test) === null || _o === void 0 ? void 0 : _o.command)) !== null && _p !== void 0 ? _p : ["bundle exec rspec"]), false)
40067
+ }) : null;
40068
+ return [auditJob, lintJob, testJob].filter(utils_1.notNil);
40069
+ };
40070
+
40071
+ exports.createRailsTestJobs = createRailsTestJobs;
40072
+
40073
+ /***/ }),
40074
+
39853
40075
  /***/ 1197:
39854
40076
  /***/ ((__unused_webpack_module, exports) => {
39855
40077
 
@@ -40074,7 +40296,7 @@ exports.readConfigSync = readConfigSync;
40074
40296
 
40075
40297
  exports.__esModule = true;
40076
40298
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
40077
- exports.PIPELINE_IMAGE_TAG = "main-c03ae42d" || 0;
40299
+ exports.PIPELINE_IMAGE_TAG = "main-209fcf0b" || 0;
40078
40300
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
40079
40301
 
40080
40302
  /***/ }),
@@ -40617,8 +40839,9 @@ var getEnvironmentVariables = function (config, componentName, env, commitInfo,
40617
40839
  additionalEnvVars = deployConfigRaw ? deploy_1.DEPLOY_TYPES[deployConfigRaw.type].getAdditionalEnvVars(environmentContext) : {};
40618
40840
  host = (_c = (_b = envConfigRaw === null || envConfigRaw === void 0 ? void 0 : envConfigRaw.host) !== null && _b !== void 0 ? _b : additionalEnvVars.HOST_CANONICAL) !== null && _c !== void 0 ? _c : "unknown-host.example.com";
40619
40841
  url = "https://".concat(host);
40620
- predefinedVariables = __assign(__assign(__assign({}, basePredefinedVariables), {
40621
- HOST: host,
40842
+ predefinedVariables = __assign(__assign(__assign(__assign({}, basePredefinedVariables), config.components[componentName].build.type === "rails" ? {} : {
40843
+ HOST: host
40844
+ }), {
40622
40845
  ROOT_URL: url
40623
40846
  }), additionalEnvVars);
40624
40847
  }