hatchkit 0.1.5 → 0.1.7

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/adopt.d.ts CHANGED
@@ -1,2 +1,4 @@
1
- export declare function runAdopt(cwd: string): Promise<void>;
1
+ export declare function runAdopt(cwd: string, opts?: {
2
+ resume?: boolean;
3
+ }): Promise<void>;
2
4
  //# sourceMappingURL=adopt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../src/adopt.ts"],"names":[],"mappings":"AAqFA,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCzD"}
1
+ {"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../src/adopt.ts"],"names":[],"mappings":"AAsGA,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D1F"}
package/dist/adopt.js CHANGED
@@ -33,36 +33,57 @@
33
33
  * a second run on the same dir notices the existing manifest and
34
34
  * exits early with a "use `hatchkit update` instead" hint.
35
35
  */
36
- import { existsSync, readFileSync } from "node:fs";
36
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
37
37
  import { join, relative } from "node:path";
38
38
  import { Separator, checkbox, confirm, input, select } from "@inquirer/prompts";
39
39
  import chalk from "chalk";
40
- import { getCoolifyConfig } from "./config.js";
40
+ import { ensureGitHub, getCoolifyConfig } from "./config.js";
41
41
  import { pushProjectKeyToCoolify } from "./deploy/keys.js";
42
42
  import { runProvision } from "./provision/index.js";
43
43
  import { MANIFEST_FILENAME, writeManifest } from "./scaffold/manifest.js";
44
44
  import { CoolifyApi } from "./utils/coolify-api.js";
45
+ import { exec, execOk } from "./utils/exec.js";
45
46
  import { SECRET_KEYS, setSecret } from "./utils/secrets.js";
46
47
  import { validateDomain, validateProjectName } from "./utils/validate.js";
47
48
  import { getCliVersion } from "./utils/version.js";
48
- export async function runAdopt(cwd) {
49
+ export async function runAdopt(cwd, opts = {}) {
49
50
  const state = await detectProject(cwd);
50
- if (state.hasManifest) {
51
+ if (state.hasManifest && !opts.resume) {
51
52
  console.log(chalk.yellow(`\n ${MANIFEST_FILENAME} already exists in ${relativeTo(state.projectDir)}.`));
52
- console.log(chalk.dim(" This project is already adopted. Use `hatchkit update` to add features, or\n" +
53
- " `hatchkit add <project>` to (re-)provision per-project clients.\n"));
53
+ console.log(chalk.dim(" This project is already adopted. Options:\n" +
54
+ " · `hatchkit update` — add features to the scaffold\n" +
55
+ " · `hatchkit add <project>` — (re-)provision per-project clients\n" +
56
+ " · `hatchkit adopt --resume` — re-run adopt over the existing manifest\n" +
57
+ " (handy when an earlier run failed mid-way)\n"));
54
58
  return;
55
59
  }
56
- console.log(chalk.bold("\n hatchkit adopt"));
60
+ console.log(chalk.bold(opts.resume ? "\n hatchkit adopt --resume" : "\n hatchkit adopt"));
61
+ if (opts.resume) {
62
+ console.log(chalk.dim(" Resuming a previous adopt — already-finished steps (encrypted .env,\n" +
63
+ " existing GitHub origin, existing Coolify app) will skip; the rest will run."));
64
+ }
57
65
  printDetected(state);
58
66
  // Initial plan — pre-filled from detection.
67
+ // bootstrapDotenvx: default ON when there's no encrypted prod env —
68
+ // adopt's whole point is "make this manageable", and that needs a
69
+ // dotenvx keypair so everything else (key push, encrypted writes
70
+ // by `add`) has something to work with.
71
+ // setupGitHub: default ON when there's no origin remote yet.
59
72
  let plan = {
60
73
  name: state.packageName ?? "",
61
74
  domain: "",
62
75
  features: state.features,
63
76
  serverDir: state.serverDir ?? state.projectDir,
64
77
  clientDir: state.clientDir,
78
+ bootstrapDotenvx: !state.prodEnvIsEncrypted,
79
+ setupGitHub: !state.gitRemoteUrl,
80
+ wireCoolify: !state.coolifyAppMatch,
81
+ appPort: "3000",
65
82
  services: ["glitchtip", "openpanel", "resend"],
83
+ // Default the push only when there's already a Coolify app to push to.
84
+ // When wireCoolify creates a fresh app, it sets the baseline env
85
+ // itself (including the dotenvx key), so a separate push is
86
+ // redundant in that branch.
66
87
  pushKey: !!state.coolifyAppMatch,
67
88
  };
68
89
  plan = await reviewLoop(state, plan);
@@ -81,20 +102,29 @@ async function detectProject(projectDir) {
81
102
  catch {
82
103
  // No package.json at root — that's fine for a non-Node project.
83
104
  }
84
- // Walk a small set of common monorepo layouts.
105
+ // Walk a generous set of common monorepo layouts.
85
106
  const serverDir = firstExisting(projectDir, [
86
107
  "packages/server",
87
108
  "apps/server",
88
109
  "apps/api",
110
+ "apps/backend",
89
111
  "server",
112
+ "backend",
113
+ "api",
114
+ "src/server",
115
+ "services/server",
90
116
  ]);
91
117
  const clientDir = firstExisting(projectDir, [
92
118
  "packages/client",
93
119
  "packages/web",
120
+ "packages/frontend",
94
121
  "apps/web",
95
122
  "apps/client",
123
+ "apps/frontend",
96
124
  "client",
125
+ "frontend",
97
126
  "web",
127
+ "src/client",
98
128
  ]);
99
129
  // Feature detection: cheap heuristics from package.json deps + env files.
100
130
  const features = detectFeatures(projectDir, serverDir);
@@ -130,6 +160,25 @@ async function detectProject(projectDir) {
130
160
  catch {
131
161
  // Best-effort only.
132
162
  }
163
+ // Git state — is this a repo? Does it already have an origin remote?
164
+ // We only auto-init + create a remote when the user opts in via the
165
+ // stepper; here we just gather state for the summary.
166
+ const isGitRepo = existsSync(join(projectDir, ".git"));
167
+ let gitRemoteUrl;
168
+ if (isGitRepo) {
169
+ try {
170
+ const res = await exec("git", ["remote", "get-url", "origin"], {
171
+ cwd: projectDir,
172
+ // No spinner — this is a sub-second silent check.
173
+ });
174
+ const url = res.stdout.trim();
175
+ if (res.exitCode === 0 && url)
176
+ gitRemoteUrl = url;
177
+ }
178
+ catch {
179
+ // Either no `origin` set yet (exit 128) or git failed — fine.
180
+ }
181
+ }
133
182
  return {
134
183
  projectDir,
135
184
  packageName,
@@ -140,6 +189,8 @@ async function detectProject(projectDir) {
140
189
  prodEnvIsEncrypted,
141
190
  hasEnvKeys,
142
191
  coolifyAppMatch,
192
+ isGitRepo,
193
+ gitRemoteUrl,
143
194
  };
144
195
  }
145
196
  function firstExisting(root, candidates) {
@@ -152,11 +203,28 @@ function firstExisting(root, candidates) {
152
203
  }
153
204
  function detectFeatures(projectDir, serverDir) {
154
205
  const found = new Set();
155
- // Look at root + server package.json deps.
156
- const pkgJsonPaths = [
157
- join(projectDir, "package.json"),
158
- serverDir ? join(serverDir, "package.json") : undefined,
159
- ].filter((p) => !!p);
206
+ // Cast a wider net than just <root> + <serverDir>: also walk the
207
+ // first level of the common monorepo package roots so a project
208
+ // organized as e.g. `apps/web` + `apps/server` doesn't end up with
209
+ // "no features detected" when serverDir resolves to a sibling.
210
+ const pkgJsonPaths = new Set();
211
+ pkgJsonPaths.add(join(projectDir, "package.json"));
212
+ if (serverDir)
213
+ pkgJsonPaths.add(join(serverDir, "package.json"));
214
+ for (const root of ["packages", "apps", "services"]) {
215
+ const dir = join(projectDir, root);
216
+ if (!existsSync(dir))
217
+ continue;
218
+ let entries;
219
+ try {
220
+ entries = readdirSync(dir);
221
+ }
222
+ catch {
223
+ continue;
224
+ }
225
+ for (const e of entries)
226
+ pkgJsonPaths.add(join(dir, e, "package.json"));
227
+ }
160
228
  for (const p of pkgJsonPaths) {
161
229
  if (!existsSync(p))
162
230
  continue;
@@ -167,19 +235,32 @@ function detectFeatures(projectDir, serverDir) {
167
235
  catch {
168
236
  continue;
169
237
  }
170
- const deps = { ...(json.dependencies ?? {}), ...(json.devDependencies ?? {}) };
171
- if ("stripe" in deps || "@stripe/stripe-js" in deps)
238
+ const deps = {
239
+ ...(json.dependencies ?? {}),
240
+ ...(json.devDependencies ?? {}),
241
+ ...(json.peerDependencies ?? {}),
242
+ ...(json.optionalDependencies ?? {}),
243
+ };
244
+ if ("stripe" in deps || "@stripe/stripe-js" in deps || "@stripe/react-stripe-js" in deps) {
172
245
  found.add("stripe");
173
- if ("socket.io" in deps || "ws" in deps)
246
+ }
247
+ if ("socket.io" in deps || "socket.io-client" in deps || "ws" in deps) {
174
248
  found.add("websocket");
175
- if ("@sentry/node" in deps || "@sentry/browser" in deps || "@openpanel/web" in deps) {
249
+ }
250
+ if ("@sentry/node" in deps ||
251
+ "@sentry/browser" in deps ||
252
+ "@sentry/react" in deps ||
253
+ "@sentry/nextjs" in deps ||
254
+ "@openpanel/web" in deps ||
255
+ "@openpanel/sdk" in deps ||
256
+ "@openpanel/nextjs" in deps) {
176
257
  found.add("analytics");
177
258
  }
178
- if ("@aws-sdk/client-s3" in deps)
259
+ if ("@aws-sdk/client-s3" in deps || "minio" in deps)
179
260
  found.add("s3");
180
261
  if ("electron" in deps || "electron-builder" in deps)
181
262
  found.add("desktop");
182
- if ("@capacitor/core" in deps)
263
+ if ("@capacitor/core" in deps || "@capacitor/cli" in deps)
183
264
  found.add("mobile");
184
265
  }
185
266
  // .env.production / .env.example as a hint when package.json is sparse.
@@ -227,7 +308,12 @@ function printDetected(state) {
227
308
  lines.push(row(".env.keys", state.hasEnvKeys ? chalk.green("present ✓") : chalk.dim("missing")));
228
309
  lines.push(row("Coolify app", state.coolifyAppMatch
229
310
  ? chalk.green(`${state.coolifyAppMatch.name} ✓`)
230
- : chalk.dim("(no match — keys push will be skipped by default)")));
311
+ : chalk.dim("(no match)")));
312
+ lines.push(row("git remote", state.gitRemoteUrl
313
+ ? chalk.green(state.gitRemoteUrl)
314
+ : state.isGitRepo
315
+ ? chalk.yellow("repo present, no `origin` set")
316
+ : chalk.dim("not a git repo yet")));
231
317
  lines.push(row("features (guess)", state.features.length > 0 ? state.features.join(", ") : chalk.dim("none detected")));
232
318
  for (const l of lines)
233
319
  console.log(l);
@@ -317,6 +403,50 @@ function buildAdoptGroups(state, plan) {
317
403
  },
318
404
  ],
319
405
  },
406
+ {
407
+ title: "Bootstrap",
408
+ steps: [
409
+ {
410
+ key: "bootstrapDotenvx",
411
+ label: "Initialize dotenvx",
412
+ set: true,
413
+ summary: plan.bootstrapDotenvx
414
+ ? state.prodEnvIsEncrypted
415
+ ? chalk.dim("already encrypted — will skip")
416
+ : "yes — generate keypair + encrypt .env.production"
417
+ : chalk.dim("no"),
418
+ },
419
+ {
420
+ key: "setupGitHub",
421
+ label: "GitHub remote",
422
+ set: true,
423
+ summary: plan.setupGitHub
424
+ ? state.gitRemoteUrl
425
+ ? chalk.dim("already set — will skip")
426
+ : "yes — `gh repo create` + push"
427
+ : state.gitRemoteUrl
428
+ ? chalk.dim(state.gitRemoteUrl)
429
+ : chalk.dim("no"),
430
+ },
431
+ ],
432
+ },
433
+ {
434
+ title: "Deploy",
435
+ steps: [
436
+ {
437
+ key: "wireCoolify",
438
+ label: "Coolify + DNS",
439
+ set: true,
440
+ summary: plan.wireCoolify
441
+ ? state.coolifyAppMatch
442
+ ? chalk.dim(`existing app "${state.coolifyAppMatch.name}" — will skip create`)
443
+ : `yes — create app + upsert DNS (port ${plan.appPort})`
444
+ : state.coolifyAppMatch
445
+ ? chalk.dim(`already exists: ${state.coolifyAppMatch.name}`)
446
+ : chalk.dim("no"),
447
+ },
448
+ ],
449
+ },
320
450
  {
321
451
  title: "Provisioning",
322
452
  steps: [
@@ -433,6 +563,44 @@ async function editAdoptStep(state, plan, step) {
433
563
  });
434
564
  return { ...plan, pushKey };
435
565
  }
566
+ if (step === "bootstrapDotenvx") {
567
+ const bootstrapDotenvx = await confirm({
568
+ message: state.prodEnvIsEncrypted
569
+ ? ".env.production is already encrypted — re-encrypt anyway?"
570
+ : "Initialize dotenvx (creates an encrypted .env.production + .env.keys)?",
571
+ default: plan.bootstrapDotenvx,
572
+ });
573
+ return { ...plan, bootstrapDotenvx };
574
+ }
575
+ if (step === "setupGitHub") {
576
+ if (state.gitRemoteUrl) {
577
+ console.log(chalk.dim(`\n origin already set to ${state.gitRemoteUrl} — adopt won't replace it.\n`));
578
+ return { ...plan, setupGitHub: false };
579
+ }
580
+ const setupGitHub = await confirm({
581
+ message: state.isGitRepo
582
+ ? "Create a GitHub repo and push this project to it?"
583
+ : "Initialize git, create a GitHub repo, and push?",
584
+ default: plan.setupGitHub,
585
+ });
586
+ return { ...plan, setupGitHub };
587
+ }
588
+ if (step === "wireCoolify") {
589
+ const wireCoolify = await confirm({
590
+ message: state.coolifyAppMatch
591
+ ? `App "${state.coolifyAppMatch.name}" already exists — re-wire (will create a duplicate)?`
592
+ : "Create a Coolify app + upsert DNS now?",
593
+ default: plan.wireCoolify,
594
+ });
595
+ if (!wireCoolify)
596
+ return { ...plan, wireCoolify };
597
+ const appPort = (await input({
598
+ message: "Container port the server listens on:",
599
+ default: plan.appPort,
600
+ validate: (v) => /^\d+$/.test(v.trim()) || "Must be an integer port number.",
601
+ })).trim();
602
+ return { ...plan, wireCoolify, appPort };
603
+ }
436
604
  return plan;
437
605
  }
438
606
  // ---------------------------------------------------------------------------
@@ -440,15 +608,62 @@ async function editAdoptStep(state, plan, step) {
440
608
  // ---------------------------------------------------------------------------
441
609
  async function executePlan(state, plan) {
442
610
  console.log(chalk.bold("\n ── Adopting ──────────────────────────────────────────────\n"));
443
- // Step 1: dotenvx encryption + key import.
444
- await encryptIfNeeded(state, plan);
611
+ // Step 1: bootstrap / encrypt dotenvx so a key actually exists.
612
+ if (plan.bootstrapDotenvx) {
613
+ await bootstrapDotenvxNow(state, plan);
614
+ }
615
+ else {
616
+ console.log(chalk.dim(" · Skipping dotenvx bootstrap (per stepper choice)."));
617
+ }
445
618
  await importKeyToKeychain(state, plan);
446
619
  // Step 2: write the manifest. Done after key import so a partial
447
620
  // failure doesn't leave a manifest pointing at no key. The
448
621
  // manifest lives at the project ROOT (not under packages/server).
449
622
  writeAdoptManifest(state.projectDir, plan);
450
623
  console.log(chalk.green(` ✓ Wrote ${MANIFEST_FILENAME} at ${relativeTo(state.projectDir)}`));
451
- // Step 3: provision clients via the existing `add` machinery so the
624
+ // Step 3: GitHub remote (init + create + push). Skipped if origin is
625
+ // already set or the user opted out.
626
+ let remoteUrl = state.gitRemoteUrl;
627
+ if (plan.setupGitHub && !state.gitRemoteUrl) {
628
+ remoteUrl = await setupGitHubRemote(state, plan);
629
+ }
630
+ else if (state.gitRemoteUrl) {
631
+ console.log(chalk.dim(` · git origin already set → ${state.gitRemoteUrl}`));
632
+ }
633
+ // Step 3b: Wire the repo into Coolify + DNS via direct API calls.
634
+ // No infra/ submodule, no Terraform — just hits the Coolify and
635
+ // DNS-provider REST endpoints with credentials we already have in
636
+ // keychain. Idempotent on the DNS side (upsert); not yet on the
637
+ // app-create side (Coolify accepts duplicate app names).
638
+ let coolifyResult;
639
+ if (plan.wireCoolify && remoteUrl) {
640
+ try {
641
+ const { wireProjectIntoCoolify } = await import("./deploy/coolify-app.js");
642
+ coolifyResult = await wireProjectIntoCoolify({
643
+ projectName: plan.name,
644
+ domain: plan.domain,
645
+ gitRepository: remoteUrl,
646
+ portsExposes: plan.appPort,
647
+ // Default assumption: anything we just `gh repo create --private`d
648
+ // is private. If origin was already set we don't know for sure;
649
+ // try public first (cheaper auth) and let the orchestrator handle
650
+ // the fallback.
651
+ isPrivate: plan.setupGitHub,
652
+ });
653
+ }
654
+ catch (err) {
655
+ console.log(chalk.yellow(`\n Couldn't wire Coolify: ${err.message}`));
656
+ console.log(chalk.dim(` Create the app manually in the Coolify dashboard pointing at\n` +
657
+ ` ${remoteUrl}\n` +
658
+ ` with domain ${plan.domain} and port ${plan.appPort}, then run\n` +
659
+ ` hatchkit keys push ${plan.name}`));
660
+ }
661
+ }
662
+ else if (plan.wireCoolify && !remoteUrl) {
663
+ console.log(chalk.yellow(" Coolify wiring needs a git remote URL — skipping (no `origin` set and the GitHub step\n" +
664
+ " was off). Set the remote yourself or re-run with `setup GitHub remote = yes`."));
665
+ }
666
+ // Step 4: provision clients via the existing `add` machinery so the
452
667
  // surfaces stepper, idempotency, and env writes behave identically
453
668
  // to a normal `hatchkit add`.
454
669
  if (plan.services.length > 0) {
@@ -463,15 +678,25 @@ async function executePlan(state, plan) {
463
678
  },
464
679
  });
465
680
  }
466
- // Step 4: push key to Coolify.
467
- if (plan.pushKey) {
468
- try {
469
- await pushProjectKeyToCoolify(plan.name);
470
- console.log(chalk.green(`\n ✓ Pushed dotenvx key to Coolify`));
681
+ // Step 5: push key to Coolify — but only when wireCoolify didn't
682
+ // already do it. wireCoolify's success path includes a setAppEnv
683
+ // pass that pushes DOTENV_PRIVATE_KEY_PRODUCTION; if it failed,
684
+ // there's no app to push to and pushing again would just produce
685
+ // a confusing second error message.
686
+ const wiredEnvAlready = plan.wireCoolify && coolifyResult !== undefined;
687
+ if (plan.pushKey && !wiredEnvAlready) {
688
+ if (plan.wireCoolify && !coolifyResult) {
689
+ console.log(chalk.dim(` · Skipping standalone key push — Coolify wiring failed, no app to push to.`));
471
690
  }
472
- catch (err) {
473
- console.log(chalk.yellow(`\n Couldn't push dotenvx key to Coolify: ${err.message}`));
474
- console.log(chalk.dim(` Once the app exists, run: \`hatchkit keys push ${plan.name}\``));
691
+ else {
692
+ try {
693
+ await pushProjectKeyToCoolify(plan.name);
694
+ console.log(chalk.green(`\n ✓ Pushed dotenvx key to Coolify`));
695
+ }
696
+ catch (err) {
697
+ console.log(chalk.yellow(`\n Couldn't push dotenvx key to Coolify: ${err.message}`));
698
+ console.log(chalk.dim(` Once the app exists, run: \`hatchkit keys push ${plan.name}\``));
699
+ }
475
700
  }
476
701
  }
477
702
  console.log(chalk.bold("\n ── Adopted ───────────────────────────────────────────────\n"));
@@ -481,37 +706,96 @@ async function executePlan(state, plan) {
481
706
  if (plan.clientDir)
482
707
  console.log(` Client: ${chalk.cyan(relativeTo(plan.clientDir))}`);
483
708
  console.log(` Manifest: ${chalk.dim(join(state.projectDir, MANIFEST_FILENAME))}`);
484
- console.log(chalk.dim("\n Next: `hatchkit doctor` to verify providers, `hatchkit keys push` if you skipped that step.\n"));
485
- }
486
- async function encryptIfNeeded(state, plan) {
487
- if (state.prodEnvIsEncrypted) {
488
- console.log(chalk.dim(" · .env.production already encrypted — skipping encrypt step."));
489
- return;
709
+ if (remoteUrl)
710
+ console.log(` Git: ${chalk.cyan(remoteUrl)}`);
711
+ if (coolifyResult) {
712
+ console.log(` Coolify: ${chalk.cyan(coolifyResult.appUuid)} ${chalk.dim(`@ ${coolifyResult.serverIp}`)}`);
713
+ if (coolifyResult.dnsManaged) {
714
+ console.log(` DNS: ${chalk.green("✓")} ${chalk.dim(`A ${plan.domain} → ${coolifyResult.serverIp}`)}`);
715
+ }
716
+ else if (plan.domain && coolifyResult.serverIp) {
717
+ console.log(` DNS: ${chalk.yellow("✗")} ${chalk.dim(`add A ${plan.domain} → ${coolifyResult.serverIp} manually`)}`);
718
+ }
490
719
  }
720
+ console.log();
721
+ }
722
+ async function bootstrapDotenvxNow(state, plan) {
491
723
  const prodPath = join(plan.serverDir, ".env.production");
492
- if (!existsSync(prodPath)) {
493
- console.log(chalk.dim(` · No .env.production at ${relativeTo(prodPath)} yet — provisioning will create + encrypt it.`));
494
- return;
495
- }
496
724
  const ora = (await import("ora")).default;
497
- const spinner = ora("Encrypting .env.production with dotenvx...").start();
725
+ const label = state.prodEnvIsEncrypted
726
+ ? "Re-encrypting .env.production with dotenvx..."
727
+ : existsSync(prodPath)
728
+ ? "Encrypting .env.production with dotenvx..."
729
+ : "Generating .env.production + .env.keys with dotenvx...";
730
+ const spinner = ora(label).start();
498
731
  try {
499
- // Calling `dotenvx set` with a no-op key forces encryption of the
500
- // existing file: it reads, encrypts, generates the keypair, and
501
- // writes .env.keys. We use a sentinel that's a real string so it
502
- // stays in the file (no harm, easy to grep + remove later).
732
+ // First call to `dotenvx set` with encrypt: true creates the file
733
+ // (if missing), generates the keypair, and writes .env.keys.
734
+ // Subsequent calls reuse the existing keypair. Using HATCHKIT_ADOPTED
735
+ // as the sentinel keeps the file non-empty so the keypair survives.
503
736
  const { set: dotenvxSet } = await import("@dotenvx/dotenvx");
504
737
  dotenvxSet("HATCHKIT_ADOPTED", new Date().toISOString(), {
505
738
  path: prodPath,
506
739
  encrypt: true,
507
740
  });
508
- spinner.succeed("Encrypted .env.production");
741
+ spinner.succeed(existsSync(prodPath)
742
+ ? "dotenvx initialized — .env.production is now encrypted"
743
+ : "dotenvx initialized");
509
744
  }
510
745
  catch (err) {
511
- spinner.fail("Failed to encrypt .env.production");
746
+ spinner.fail("Failed to initialize dotenvx");
512
747
  throw err;
513
748
  }
514
749
  }
750
+ async function setupGitHubRemote(state, plan) {
751
+ // Pre-flight gh CLI auth. ensureGitHub prompts the user to log in
752
+ // when needed; if they cancel, surface a clear "you can do this
753
+ // later" rather than crashing the whole adopt run.
754
+ try {
755
+ await ensureGitHub();
756
+ }
757
+ catch (err) {
758
+ console.log(chalk.yellow(`\n Couldn't reach GitHub (${err.message}). Skipping remote creation.`));
759
+ return undefined;
760
+ }
761
+ console.log(chalk.bold("\n ── GitHub ────────────────────────────────────────────────\n"));
762
+ if (!state.isGitRepo) {
763
+ await exec("git", ["init"], {
764
+ cwd: state.projectDir,
765
+ spinner: "Initializing git repo...",
766
+ });
767
+ }
768
+ // Stage everything + commit when there's anything staged.
769
+ // `git diff --cached --quiet` exits 0 → no diff (nothing staged)
770
+ // 1 → diff present (commit needed)
771
+ // execOk returns true on exit 0, so the inverse is "something to commit".
772
+ await exec("git", ["add", "-A"], { cwd: state.projectDir });
773
+ const cleanIndex = await execOk("git", ["diff", "--cached", "--quiet"], {
774
+ cwd: state.projectDir,
775
+ });
776
+ if (!cleanIndex) {
777
+ await exec("git", ["commit", "-m", "Adopt under hatchkit management"], {
778
+ cwd: state.projectDir,
779
+ spinner: "Creating commit...",
780
+ });
781
+ }
782
+ // `gh repo create` with --source=. + --push handles remote creation
783
+ // and the initial push in one shot. --private matches the default
784
+ // behaviour of `hatchkit create`.
785
+ const create = await exec("gh", ["repo", "create", plan.name, "--private", "--source=.", "--push"], { cwd: state.projectDir, spinner: `Creating GitHub repo: ${plan.name}...` });
786
+ if (create.exitCode !== 0) {
787
+ console.log(chalk.yellow(" Could not create GitHub repo. Push manually once it exists:"));
788
+ console.log(chalk.dim(` cd ${state.projectDir}`));
789
+ console.log(chalk.dim(` gh repo create ${plan.name} --private --source=. --push`));
790
+ return undefined;
791
+ }
792
+ const urlRes = await exec("gh", ["repo", "view", "--json", "url", "-q", ".url"], {
793
+ cwd: state.projectDir,
794
+ });
795
+ const url = urlRes.stdout.trim();
796
+ console.log(chalk.green(` ✓ GitHub repo: ${url}`));
797
+ return url || undefined;
798
+ }
515
799
  async function importKeyToKeychain(state, plan) {
516
800
  const envKeysPath = join(plan.serverDir, ".env.keys");
517
801
  if (!existsSync(envKeysPath)) {
package/dist/adopt.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"adopt.js","sourceRoot":"","sources":["../src/adopt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adopt.js","sourceRoot":"","sources":["../src/adopt.ts"],"names":[],"mappings":"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"}