feat: add simplified windows x86 support

This commit is contained in:
yankun
2026-06-27 18:33:59 +08:00
parent 7de0777748
commit 67c995db83
12 changed files with 400 additions and 84 deletions
+13 -8
View File
@@ -11,11 +11,12 @@ const { ClawClient } = require('../lib/client');
const config = require('../lib/config');
const log = require('../lib/logger');
const { pollSms } = require('../drivers/sim/sms-reader');
const IS_WINDOWS = process.platform === 'win32';
// 每次启动同步 3588s demo 到 /usr/bin/demoidempotent,失败不影响主流程)
const demoBin = path.join(__dirname, "..", "lib/resource/3588s/demo");
const demoDst = "/usr/bin/demo";
if (fs.existsSync(demoBin)) {
if (!IS_WINDOWS && fs.existsSync(demoBin)) {
exec(`install -m 0755 "${demoBin}" "${demoDst}"`, (err) => {
if (err) log.warn("clawd", `demo sync failed: ${err.message}`);
else log.info("clawd", "demo synced to /usr/bin/demo");
@@ -24,14 +25,16 @@ if (fs.existsSync(demoBin)) {
// 每次启动绑定 Quectel 串口驱动(失败不影响主流程)
const bindScript = path.join(__dirname, '..', 'tools', 'bind-quectel-serial.sh');
exec(`bash "${bindScript}"`, (err, stdout, stderr) => {
if (err) log.warn('clawd', `bind-quectel-serial: ${stderr || err.message}`);
else log.info('clawd', `bind-quectel-serial: ok`);
});
if (!IS_WINDOWS) {
exec(`bash "${bindScript}"`, (err, stdout, stderr) => {
if (err) log.warn('clawd', `bind-quectel-serial: ${stderr || err.message}`);
else log.info('clawd', `bind-quectel-serial: ok`);
});
}
// 同步 Samba 共享密码(idempotent,失败不影响主流程)
const cfg = config.load();
if (cfg.share_key) {
if (!IS_WINDOWS && cfg.share_key) {
const shareKey = cfg.share_key.replace(/'/g, "'\\''");
exec(`printf '%s\\n%s\\n' '${shareKey}' '${shareKey}' | smbpasswd -a sts -s 2>/dev/null`, (err) => {
if (err) log.warn('clawd', `smbpasswd sync failed (samba not installed?): ${err.message}`);
@@ -58,8 +61,10 @@ async function pollSmsSafe() {
const client = new ClawClient();
client.start();
pollSmsSafe();
smsTimer = setInterval(pollSmsSafe, 15_000);
if (!IS_WINDOWS) {
pollSmsSafe();
smsTimer = setInterval(pollSmsSafe, 15_000);
}
let stopping = false;