@lark-apaas/openclaw-scripts-diagnose-cli 0.1.1-alpha.27 → 0.1.1-alpha.28

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.
Files changed (2) hide show
  1. package/dist/index.cjs +26 -7
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -1582,29 +1582,48 @@ async function installOpenclaw(openclawTag, ossFileMap, opts = {}) {
1582
1582
  if (!pkg) throw new Error("install-openclaw: role=cli,name=openclaw not found in manifest");
1583
1583
  const targetDir = opts.targetDir ?? node_path.default.join(homeBase, pkg.installPath);
1584
1584
  const bakDir = targetDir + ".bak";
1585
+ const stagingDir = targetDir + ".new";
1585
1586
  const tarball = await downloadWithCache(pkg, ossFileMap, opts);
1586
1587
  console.error(`[install-openclaw] tag=${openclawTag} shasum=${pkg.shasum.slice(0, 12)}...`);
1588
+ if (node_fs.default.existsSync(stagingDir)) node_fs.default.rmSync(stagingDir, {
1589
+ recursive: true,
1590
+ force: true
1591
+ });
1587
1592
  if (node_fs.default.existsSync(bakDir)) node_fs.default.rmSync(bakDir, {
1588
1593
  recursive: true,
1589
1594
  force: true
1590
1595
  });
1596
+ node_fs.default.mkdirSync(node_path.default.dirname(targetDir), { recursive: true });
1597
+ node_fs.default.mkdirSync(stagingDir);
1598
+ try {
1599
+ execCaptureErr(`tar -xzf '${tarball}' -C '${stagingDir}' --strip-components=1`);
1600
+ if (!node_fs.default.existsSync(node_path.default.join(stagingDir, "package.json"))) throw new Error("extracted tarball missing package.json");
1601
+ } catch (e) {
1602
+ try {
1603
+ node_fs.default.rmSync(stagingDir, {
1604
+ recursive: true,
1605
+ force: true
1606
+ });
1607
+ } catch {}
1608
+ throw e;
1609
+ }
1591
1610
  const hadExisting = node_fs.default.existsSync(targetDir);
1592
- if (hadExisting) moveSafe(targetDir, bakDir);
1593
1611
  try {
1594
- node_fs.default.mkdirSync(targetDir, { recursive: true });
1595
- execCaptureErr(`tar -xzf '${tarball}' -C '${targetDir}' --strip-components=1`);
1596
- if (!node_fs.default.existsSync(node_path.default.join(targetDir, "package.json"))) throw new Error("extracted tarball missing package.json");
1612
+ if (hadExisting) moveSafe(targetDir, bakDir);
1613
+ moveSafe(stagingDir, targetDir);
1597
1614
  } catch (e) {
1615
+ if (hadExisting && !node_fs.default.existsSync(targetDir) && node_fs.default.existsSync(bakDir)) try {
1616
+ moveSafe(bakDir, targetDir);
1617
+ } catch {}
1598
1618
  try {
1599
- node_fs.default.rmSync(targetDir, {
1619
+ node_fs.default.rmSync(stagingDir, {
1600
1620
  recursive: true,
1601
1621
  force: true
1602
1622
  });
1603
1623
  } catch {}
1604
- if (hadExisting && node_fs.default.existsSync(bakDir)) moveSafe(bakDir, targetDir);
1605
1624
  throw e;
1606
1625
  }
1607
- if (node_fs.default.existsSync(bakDir)) node_fs.default.rmSync(bakDir, {
1626
+ if (hadExisting && node_fs.default.existsSync(bakDir)) node_fs.default.rmSync(bakDir, {
1608
1627
  recursive: true,
1609
1628
  force: true
1610
1629
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/openclaw-scripts-diagnose-cli",
3
- "version": "0.1.1-alpha.27",
3
+ "version": "0.1.1-alpha.28",
4
4
  "description": "CLI for OpenClaw config diagnose and repair with JSON5 support",
5
5
  "main": "dist/index.cjs",
6
6
  "bin": {