@onepointfour-packs/flaredeck-agent 0.2.2 → 0.2.4

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/setup.js CHANGED
@@ -16,14 +16,30 @@ import { appendFileSync, existsSync, mkdirSync, readFileSync } from 'node:fs';
16
16
  import { homedir } from 'node:os';
17
17
  import { join } from 'node:path';
18
18
  const PKG = '@onepointfour-packs/flaredeck-agent';
19
- const run = (args, quiet = false) => {
19
+ /**
20
+ * Run npm, and say whether it worked.
21
+ *
22
+ * `ok` matters: the first version swallowed the result and printed "Done." after an install that
23
+ * had failed with EACCES in full view. A setup command that reports success it did not have is
24
+ * worse than one that fails.
25
+ */
26
+ function npm(args, opts = {}) {
20
27
  try {
21
- return execFileSync('npm', args, { encoding: 'utf8', stdio: quiet ? ['ignore', 'pipe', 'ignore'] : 'inherit' }) ?? '';
28
+ const out = execFileSync('npm', args, {
29
+ encoding: 'utf8',
30
+ stdio: opts.quiet ? ['ignore', 'pipe', 'ignore'] : 'inherit',
31
+ // npx puts npm_config_prefix in the environment, and the environment beats the config FILE
32
+ // we just wrote — which is why `npm config set prefix` appeared to work and the install
33
+ // still went to /usr/lib. Set it here, where it actually wins.
34
+ env: opts.prefix ? { ...process.env, npm_config_prefix: opts.prefix } : process.env,
35
+ }) ?? '';
36
+ return { ok: true, out };
22
37
  }
23
- catch {
24
- return '';
38
+ catch (e) {
39
+ return { ok: false, out: e instanceof Error ? e.message : String(e) };
25
40
  }
26
- };
41
+ }
42
+ const run = (args, quiet = false) => npm(args, { quiet }).out;
27
43
  /** Where npm would put a global install today, and whether we may write there. */
28
44
  function globalIsWritable() {
29
45
  const prefix = run(['config', 'get', 'prefix'], true).trim();
@@ -86,10 +102,37 @@ export function setup() {
86
102
  process.stdout.write('\n');
87
103
  }
88
104
  process.stdout.write('Installing…\n');
89
- run(['install', '-g', PKG]);
90
- const where = globalIsWritable() ? '' : bin;
105
+ const intoOwn = !globalIsWritable();
106
+ // --prefix as well as the environment: belt and braces, because this one failure is the whole
107
+ // reason the command exists.
108
+ const installed = npm(intoOwn ? ['install', '-g', '--prefix', prefix, PKG] : ['install', '-g', PKG], intoOwn ? { prefix } : {});
109
+ if (!installed.ok || !existsSync(join(bin, 'flaredeck-agent')) && intoOwn) {
110
+ process.stdout.write(`\nThe install did NOT work.\n\n` +
111
+ `Nothing above is a reason to use sudo — a root-owned install can never update itself.\n` +
112
+ `Try it by hand, which is the same thing this was doing:\n\n` +
113
+ ` npm install -g --prefix ${prefix} ${PKG}\n\n` +
114
+ `and if that fails too, the error it prints is the real problem.\n`);
115
+ process.exitCode = 1;
116
+ return;
117
+ }
118
+ // Installed is not the same as reachable. A machine where the prefix was already set — by an
119
+ // earlier run of this, usually — installs cleanly into a directory the CURRENT shell has never
120
+ // heard of, and `flaredeck-agent: command not found` is a poor reward for a command that just
121
+ // said Done. So it is checked rather than inferred from which branch was taken.
122
+ const where = npm(['bin', '-g'], { quiet: true, ...(intoOwn ? { prefix } : {}) }).out.trim()
123
+ || (intoOwn ? bin : '');
124
+ let onPath = false;
125
+ try {
126
+ execFileSync('sh', ['-lc', 'command -v flaredeck-agent'], { stdio: 'ignore' });
127
+ onPath = true;
128
+ }
129
+ catch { /* not found */ }
91
130
  process.stdout.write(`\nDone.\n\n` +
92
- ` Open a new terminal (or run: export PATH="$HOME/.npm-global/bin:$PATH")\n`.replace(/^.*\n$/, where ? ` Open a new terminal (or run: export PATH="$HOME/.npm-global/bin:$PATH")\n` : '') +
131
+ (!onPath && where
132
+ ? ` It is installed at ${where}, which this shell does not know about yet:\n` +
133
+ ` export PATH="${where}:$PATH"\n` +
134
+ ` (already added to your shell profile, so a new terminal picks it up by itself)\n\n`
135
+ : '') +
93
136
  ` cd <the folder this agent works in>\n` +
94
137
  ` flaredeck-agent login\n` +
95
138
  ` flaredeck-agent\n\n` +
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onepointfour-packs/flaredeck-agent",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Run a FlareDeck agent on your own machine: it picks up cards assigned to it, works each one in a checkout of its own, and reports back on the card.",
5
5
  "type": "module",
6
6
  "bin": {