omegon 0.6.16 → 0.6.17

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.
@@ -105,7 +105,11 @@ export const DEPS: Dep[] = [
105
105
  tier: "core",
106
106
  check: () => hasCmd("nix"),
107
107
  install: [
108
- { platform: "any", cmd: "curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --no-confirm" },
108
+ // --no-confirm: headless (stdin is closed)
109
+ // --init none: skip systemd/launchd service setup — required on immutable
110
+ // distros (Bazzite/Silverblue) where systemd-reload fails, and harmless
111
+ // elsewhere (nix daemon is started on demand).
112
+ { platform: "any", cmd: "curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --no-confirm --init none" },
109
113
  ],
110
114
  url: "https://zero-to-nix.com",
111
115
  },
@@ -1103,12 +1103,17 @@ async function installDeps(ctx: CommandContext, deps: DepStatus[]): Promise<void
1103
1103
  continue;
1104
1104
  }
1105
1105
 
1106
- ctx.ui.notify(`\n${step} 📦 Installing ${dep.name}…`);
1107
- ctx.ui.notify(` → \`${cmd}\``);
1106
+ ctx.ui.notify(`\n${step} 📦 Installing ${dep.name}…\n → \`${cmd}\``);
1108
1107
 
1108
+ // Collect output lines — show progress inline but also keep them
1109
+ // so we can dump a readable block on failure.
1110
+ const outputLines: string[] = [];
1109
1111
  const exitCode = await runAsync(
1110
1112
  cmd,
1111
- (line) => ctx.ui.notify(line),
1113
+ (line) => {
1114
+ outputLines.push(line);
1115
+ ctx.ui.notify(line);
1116
+ },
1112
1117
  );
1113
1118
 
1114
1119
  // Patch PATH immediately after installing bootstrapping deps so the rest
@@ -1124,13 +1129,22 @@ async function installDeps(ctx: CommandContext, deps: DepStatus[]): Promise<void
1124
1129
  ctx.ui.notify(`${step} ✅ ${dep.name} installed successfully`);
1125
1130
  } else if (exitCode === 124) {
1126
1131
  ctx.ui.notify(`${step} ❌ ${dep.name} install timed out (10 min limit)`);
1127
- } else if (exitCode === 0) {
1128
- ctx.ui.notify(`${step} ⚠️ Command succeeded but ${dep.name} not found on PATH — you may need to open a new shell.`);
1129
1132
  } else {
1130
- ctx.ui.notify(`${step} Failed to install ${dep.name} (exit ${exitCode})`);
1131
- const hints = dep.install.filter((o) => o.cmd !== cmd);
1132
- if (hints.length > 0) ctx.ui.notify(` Alternative: \`${hints[0]!.cmd}\``);
1133
- if (dep.url) ctx.ui.notify(` Manual install: ${dep.url}`);
1133
+ // Dump the last N lines of output so the operator can see what went wrong
1134
+ const tail = outputLines.slice(-20).join("\n");
1135
+ const status = exitCode === 0
1136
+ ? `Command succeeded but ${dep.name} not found on PATH`
1137
+ : `Failed to install ${dep.name} (exit ${exitCode})`;
1138
+ const block = [
1139
+ `${step} ❌ ${status}`,
1140
+ "",
1141
+ "Output (last 20 lines):",
1142
+ "```",
1143
+ tail,
1144
+ "```",
1145
+ ...(dep.url ? [`Manual install: ${dep.url}`] : []),
1146
+ ].join("\n");
1147
+ ctx.ui.notify(block);
1134
1148
  }
1135
1149
  }
1136
1150
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omegon",
3
- "version": "0.6.16",
3
+ "version": "0.6.17",
4
4
  "description": "Omegon — an opinionated distribution of pi (by Mario Zechner) with extensions for lifecycle management, memory, orchestration, and visualization",
5
5
  "bin": {
6
6
  "omegon": "bin/omegon.mjs",