feat: prepare Zhinian desktop pilot
This commit is contained in:
@@ -8,8 +8,8 @@ import {
|
||||
existsSync,
|
||||
mkdirSync,
|
||||
readFileSync,
|
||||
rmSync,
|
||||
symlinkSync,
|
||||
unlinkSync,
|
||||
} from 'node:fs';
|
||||
import { spawn } from 'node:child_process';
|
||||
import { homedir } from 'node:os';
|
||||
@@ -150,10 +150,9 @@ export async function installOpenClawCli(): Promise<{
|
||||
try {
|
||||
mkdirSync(targetDir, { recursive: true });
|
||||
|
||||
// Remove existing file/symlink to avoid EEXIST
|
||||
if (existsSync(target)) {
|
||||
unlinkSync(target);
|
||||
}
|
||||
// Remove existing file/symlink to avoid EEXIST. `existsSync` is false for
|
||||
// broken symlinks, so use rmSync directly with force.
|
||||
rmSync(target, { force: true });
|
||||
|
||||
symlinkSync(wrapperSrc, target);
|
||||
chmodSync(wrapperSrc, 0o755);
|
||||
@@ -304,7 +303,7 @@ export async function autoInstallCliIfNeeded(
|
||||
if (isCliInstalled()) {
|
||||
if (target && wrapperSrc && existsSync(target)) {
|
||||
try {
|
||||
unlinkSync(target);
|
||||
rmSync(target, { force: true });
|
||||
symlinkSync(wrapperSrc, target);
|
||||
logger.debug(`Refreshed CLI symlink: ${target} -> ${wrapperSrc}`);
|
||||
} catch {
|
||||
|
||||
Reference in New Issue
Block a user