@optimizely/ocp-cli 1.0.0-beta.8 → 1.0.0

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/dist/index.js CHANGED
@@ -4,12 +4,24 @@ const oo_cli_1 = require("oo-cli");
4
4
  const path = require("path");
5
5
  const EnvironmentalOutput_1 = require("./lib/EnvironmentalOutput");
6
6
  const checkForUpdate_1 = require("./lib/checkForUpdate");
7
- function run() {
7
+ const os = require("os");
8
+ const fs = require("fs");
9
+ const formatError_1 = require("./lib/formatError");
10
+ const migrateOptiCli_1 = require("./lib/migrateOptiCli");
11
+ const die_1 = require("./lib/die");
12
+ async function run() {
13
+ await (0, migrateOptiCli_1.migrateOptiCli)();
14
+ const configFolder = path.join(os.homedir(), '.ocp');
15
+ if (!fs.existsSync(configFolder)) {
16
+ (0, die_1.die)('No ~/.ocp config folder found. ' +
17
+ 'Follow the instruction in ' +
18
+ 'https://docs.developers.optimizely.com/optimizely-connect-platform/docs/ocp-cli-commands ' +
19
+ 'to set up your development environment.');
20
+ }
8
21
  (0, EnvironmentalOutput_1.showEnvironment)();
9
22
  const manifest = require(path.join(__dirname, './oo-cli.manifest.json'));
10
- (0, checkForUpdate_1.checkForUpdate)(manifest)
11
- .then(() => new oo_cli_1.Runner(__dirname, manifest).run())
12
- .catch((e) => console.log(e.message));
23
+ await (0, checkForUpdate_1.checkForUpdate)(manifest);
24
+ new oo_cli_1.Runner(__dirname, manifest).run();
13
25
  }
14
- run();
26
+ run().catch((e) => (0, die_1.die)((0, formatError_1.formatError)(e)));
15
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAChC,6BAA6B;AAC7B,mEAA4D;AAC5D,yDAAsD;AAEtD,SAAS,GAAG;IACR,IAAA,qCAAe,GAAE,CAAC;IAElB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACzE,IAAA,+BAAc,EAAC,QAAQ,CAAC;SACrB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,eAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;SACjD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAChC,6BAA6B;AAC7B,mEAA4D;AAC5D,yDAAsD;AACtD,yBAAyB;AACzB,yBAAyB;AACzB,mDAA8C;AAC9C,yDAAoD;AACpD,mCAA8B;AAE9B,KAAK,UAAU,GAAG;IAChB,MAAM,IAAA,+BAAc,GAAE,CAAC;IAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;QAC9B,IAAA,SAAG,EACD,iCAAiC;YACjC,4BAA4B;YAC5B,2FAA2F;YAC3F,yCAAyC,CAC1C,CAAC;KACL;IAED,IAAA,qCAAe,GAAE,CAAC;IAElB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACzE,MAAM,IAAA,+BAAc,EAAC,QAAQ,CAAC,CAAC;IAE/B,IAAI,eAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;AACxC,CAAC;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,SAAG,EAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -13,6 +13,14 @@ const LAST_VERSION_CHECK_FILE = '.lastcheck';
13
13
  const _24hours = 24 * 60 * 60 * 1000;
14
14
  async function checkForUpdate(manifest) {
15
15
  var _a;
16
+ const installed = (_a = manifest.package) === null || _a === void 0 ? void 0 : _a.version;
17
+ const prerelease = semver.prerelease(installed);
18
+ const isBeta = prerelease && prerelease[0] === 'beta';
19
+ if (isBeta) {
20
+ console.log(chalk.yellow(`You are running beta version (${installed})'. ` +
21
+ `${chalk.italic.grey('yarn global upgrade @optimizely/ocp-cli --latest')} to upgrade to the latest release version`));
22
+ return;
23
+ }
16
24
  const lastCheck = getLastCheck();
17
25
  if (lastCheck) {
18
26
  const now = new Date();
@@ -24,7 +32,6 @@ async function checkForUpdate(manifest) {
24
32
  let upToDate = true;
25
33
  const latest = await fetchLatest();
26
34
  if (latest) {
27
- const installed = (_a = manifest.package) === null || _a === void 0 ? void 0 : _a.version;
28
35
  if (semver.gt(latest, installed)) {
29
36
  upToDate = false;
30
37
  if (await TerminalConfirm_1.TerminalConfirm.ask(chalk.yellow('A new version of OCP CLI is available. Update now?'))) {
@@ -1 +1 @@
1
- {"version":3,"file":"checkForUpdate.js","sourceRoot":"","sources":["../../src/lib/checkForUpdate.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,yBAAyB;AACzB,yBAAyB;AACzB,6BAA6B;AAC7B,iCAAiC;AAEjC,qDAAkD;AAClD,uDAAoD;AACpD,uDAAqD;AAOrD,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9B,KAAK,UAAU,cAAc,CAAC,QAA4B;;IAC/D,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,SAAS,EAAE;QACb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE;YAC7E,OAAO;SACR;KACF;IAED,IAAI;QACF,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QACnC,IAAI,MAAM,EAAE;YACV,MAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAQ,CAAC;YAC7C,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;gBAChC,QAAQ,GAAG,KAAK,CAAC;gBACjB,IAAI,MAAM,iCAAe,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,EAAE;oBACjG,kCAAgB,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;iBAC3E;aACF;SACF;QACD,YAAY,CAAC,QAAQ,CAAC,CAAC;KACxB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO;KACR;AACH,CAAC;AAzBD,wCAyBC;AAED,KAAK,UAAU,WAAW;IACxB,OAAO,+BAAc,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,uBAAuB,EAAE,CAAC,CAAC;IACxE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,KAAK,MAAM,CAAC;QACvE,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;KACrC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,QAAiB;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,uBAAuB,EAAE,CAAC,CAAC;IACxE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"checkForUpdate.js","sourceRoot":"","sources":["../../src/lib/checkForUpdate.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,yBAAyB;AACzB,yBAAyB;AACzB,6BAA6B;AAC7B,iCAAiC;AAEjC,qDAAkD;AAClD,uDAAoD;AACpD,uDAAqD;AAOrD,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9B,KAAK,UAAU,cAAc,CAAC,QAA4B;;IAC/D,MAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAQ,CAAC;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IAEtD,IAAI,MAAM,EAAE;QACV,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,CACR,iCAAiC,SAAS,MAAM;YAChD,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,2CAA2C,CACtH,CACJ,CAAC;QACF,OAAO;KACR;IAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,SAAS,EAAE;QACb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE;YAC7E,OAAO;SACR;KACF;IAED,IAAI;QACF,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QACnC,IAAI,MAAM,EAAE;YACV,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;gBAChC,QAAQ,GAAG,KAAK,CAAC;gBACjB,IAAI,MAAM,iCAAe,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,EAAE;oBACjG,kCAAgB,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;iBAC3E;aACF;SACF;QACD,YAAY,CAAC,QAAQ,CAAC,CAAC;KACxB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO;KACR;AACH,CAAC;AAtCD,wCAsCC;AAED,KAAK,UAAU,WAAW;IACxB,OAAO,+BAAc,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,uBAAuB,EAAE,CAAC,CAAC;IACxE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,KAAK,MAAM,CAAC;QACvE,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;KACrC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,QAAiB;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,uBAAuB,EAAE,CAAC,CAAC;IACxE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function migrateOptiCli(): Promise<void>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateOptiCli = void 0;
4
+ const path = require("path");
5
+ const os = require("os");
6
+ const fs = require("fs");
7
+ const chalk = require("chalk");
8
+ const TerminalConfirm_1 = require("./TerminalConfirm");
9
+ const dotenv = require("dotenv");
10
+ async function migrateOptiCli() {
11
+ const configFolder = path.join(os.homedir(), '.ocp');
12
+ if (fs.existsSync(configFolder) || !fs.existsSync(path.join(os.homedir(), '.opti'))) {
13
+ return;
14
+ }
15
+ const question = chalk.yellow('No ~/.ocp config folder found, but the config folder for legacy opti CLI exists. ' +
16
+ 'Do you want to copy opti CLI configuration? (y/n)');
17
+ const copyConfig = await TerminalConfirm_1.TerminalConfirm.ask(question);
18
+ if (copyConfig) {
19
+ fs.cpSync(path.join(os.homedir(), '.opti'), path.join(os.homedir(), '.ocp'), { recursive: true });
20
+ ['.env', '.env.staging'].forEach((envFile) => {
21
+ const envFilePath = path.join(os.homedir(), '.ocp', envFile);
22
+ if (fs.existsSync(envFilePath)) {
23
+ fs.writeFileSync(envFilePath, fs.readFileSync(envFilePath, 'utf8').replace('OPTI_ENV', 'OCP_ENV'));
24
+ }
25
+ });
26
+ dotenv.config({ path: path.join(os.homedir(), '.ocp/.env') });
27
+ }
28
+ }
29
+ exports.migrateOptiCli = migrateOptiCli;
30
+ //# sourceMappingURL=migrateOptiCli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateOptiCli.js","sourceRoot":"","sources":["../../src/lib/migrateOptiCli.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,yBAAyB;AACzB,yBAAyB;AACzB,+BAA+B;AAC/B,uDAAkD;AAClD,iCAAiC;AAE1B,KAAK,UAAU,cAAc;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE;QACnF,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,mFAAmF;QACnF,mDAAmD,CACpD,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,iCAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,UAAU,EAAE;QACd,EAAE,CAAC,MAAM,CACP,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,EAC/B,EAAC,SAAS,EAAE,IAAI,EAAC,CAClB,CAAC;QACF,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;gBAC9B,EAAE,CAAC,aAAa,CACd,WAAW,EACX,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CACpE,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,EAAC,CAAC,CAAC;KAC7D;AACH,CAAC;AA9BD,wCA8BC"}
@@ -1134,7 +1134,7 @@
1134
1134
  },
1135
1135
  "commands": [],
1136
1136
  "package": {
1137
- "version": "1.0.0-beta.8",
1137
+ "version": "1.0.0",
1138
1138
  "name": "@optimizely/ocp-cli",
1139
1139
  "license": "Apache-2.0",
1140
1140
  "executable": "ocp"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimizely/ocp-cli",
3
- "version": "1.0.0-beta.8",
3
+ "version": "1.0.0",
4
4
  "description": "Optimizely Connect Platform command line interface",
5
5
  "repository": "https://github.com/ZaiusInc/ocp-cli",
6
6
  "license": "Apache-2.0",
package/src/index.ts CHANGED
@@ -2,14 +2,31 @@ import { Runner } from 'oo-cli';
2
2
  import * as path from 'path';
3
3
  import { showEnvironment } from './lib/EnvironmentalOutput';
4
4
  import { checkForUpdate } from './lib/checkForUpdate';
5
+ import * as os from 'os';
6
+ import * as fs from 'fs';
7
+ import {formatError} from './lib/formatError';
8
+ import {migrateOptiCli} from './lib/migrateOptiCli';
9
+ import {die} from './lib/die';
5
10
 
6
- function run() {
7
- showEnvironment();
11
+ async function run() {
12
+ await migrateOptiCli();
8
13
 
9
- const manifest = require(path.join(__dirname, './oo-cli.manifest.json'));
10
- checkForUpdate(manifest)
11
- .then(() => new Runner(__dirname, manifest).run())
12
- .catch((e) => console.log(e.message));
14
+ const configFolder = path.join(os.homedir(), '.ocp');
15
+ if (!fs.existsSync(configFolder)) {
16
+ die(
17
+ 'No ~/.ocp config folder found. ' +
18
+ 'Follow the instruction in ' +
19
+ 'https://docs.developers.optimizely.com/optimizely-connect-platform/docs/ocp-cli-commands ' +
20
+ 'to set up your development environment.'
21
+ );
22
+ }
23
+
24
+ showEnvironment();
25
+
26
+ const manifest = require(path.join(__dirname, './oo-cli.manifest.json'));
27
+ await checkForUpdate(manifest);
28
+
29
+ new Runner(__dirname, manifest).run();
13
30
  }
14
31
 
15
- run();
32
+ run().catch((e) => die(formatError(e)));
@@ -17,6 +17,20 @@ const LAST_VERSION_CHECK_FILE = '.lastcheck';
17
17
  const _24hours = 24 * 60 * 60 * 1000;
18
18
 
19
19
  export async function checkForUpdate(manifest: ManifestDefinition): Promise<void> {
20
+ const installed = manifest.package?.version!;
21
+ const prerelease = semver.prerelease(installed);
22
+ const isBeta = prerelease && prerelease[0] === 'beta';
23
+
24
+ if (isBeta) {
25
+ console.log(
26
+ chalk.yellow(
27
+ `You are running beta version (${installed})'. ` +
28
+ `${chalk.italic.grey('yarn global upgrade @optimizely/ocp-cli --latest')} to upgrade to the latest release version`
29
+ )
30
+ );
31
+ return;
32
+ }
33
+
20
34
  const lastCheck = getLastCheck();
21
35
  if (lastCheck) {
22
36
  const now = new Date();
@@ -29,7 +43,6 @@ export async function checkForUpdate(manifest: ManifestDefinition): Promise<void
29
43
  let upToDate = true;
30
44
  const latest = await fetchLatest();
31
45
  if (latest) {
32
- const installed = manifest.package?.version!;
33
46
  if (semver.gt(latest, installed)) {
34
47
  upToDate = false;
35
48
  if (await TerminalConfirm.ask(chalk.yellow('A new version of OCP CLI is available. Update now?'))) {
@@ -0,0 +1,38 @@
1
+ import * as path from 'path';
2
+ import * as os from 'os';
3
+ import * as fs from 'fs';
4
+ import * as chalk from 'chalk';
5
+ import {TerminalConfirm} from './TerminalConfirm';
6
+ import * as dotenv from 'dotenv';
7
+
8
+ export async function migrateOptiCli() {
9
+ const configFolder = path.join(os.homedir(), '.ocp');
10
+ if (fs.existsSync(configFolder) || !fs.existsSync(path.join(os.homedir(), '.opti'))) {
11
+ return;
12
+ }
13
+
14
+ const question = chalk.yellow(
15
+ 'No ~/.ocp config folder found, but the config folder for legacy opti CLI exists. ' +
16
+ 'Do you want to copy opti CLI configuration? (y/n)'
17
+ );
18
+
19
+ const copyConfig = await TerminalConfirm.ask(question);
20
+ if (copyConfig) {
21
+ fs.cpSync(
22
+ path.join(os.homedir(), '.opti'),
23
+ path.join(os.homedir(), '.ocp'),
24
+ {recursive: true}
25
+ );
26
+ ['.env', '.env.staging'].forEach((envFile) => {
27
+ const envFilePath = path.join(os.homedir(), '.ocp', envFile);
28
+ if (fs.existsSync(envFilePath)) {
29
+ fs.writeFileSync(
30
+ envFilePath,
31
+ fs.readFileSync(envFilePath, 'utf8').replace('OPTI_ENV', 'OCP_ENV')
32
+ );
33
+ }
34
+ });
35
+
36
+ dotenv.config({path: path.join(os.homedir(), '.ocp/.env')});
37
+ }
38
+ }