feat: initial open marketplace with llm-security, config-audit, ultraplan-local
This commit is contained in:
commit
f93d6abdae
380 changed files with 65935 additions and 0 deletions
61
plugins/llm-security/scanners/lib/fs-utils.mjs
Normal file
61
plugins/llm-security/scanners/lib/fs-utils.mjs
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/env node
|
||||
// fs-utils.mjs — Cross-platform file operations for /security clean
|
||||
// Usage:
|
||||
// node fs-utils.mjs backup <target> → prints backup path to stdout
|
||||
// node fs-utils.mjs restore <backup> <target> → restores backup over target
|
||||
// node fs-utils.mjs cleanup <backup> → removes backup directory
|
||||
// node fs-utils.mjs tmppath <filename> → prints cross-platform temp file path
|
||||
|
||||
import { cpSync, rmSync, renameSync, existsSync } from 'node:fs';
|
||||
import { join, basename } from 'node:path';
|
||||
import { tmpdir } from 'node:os';
|
||||
|
||||
const [,, command, ...args] = process.argv;
|
||||
|
||||
switch (command) {
|
||||
case 'backup': {
|
||||
const target = args[0];
|
||||
if (!target || !existsSync(target)) {
|
||||
console.error(`backup: target does not exist: ${target}`);
|
||||
process.exit(1);
|
||||
}
|
||||
const ts = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
|
||||
const backupPath = `${target}.security-backup-${ts}`;
|
||||
cpSync(target, backupPath, { recursive: true });
|
||||
process.stdout.write(backupPath + '\n');
|
||||
break;
|
||||
}
|
||||
|
||||
case 'restore': {
|
||||
const [backup, target] = args;
|
||||
if (!backup || !existsSync(backup)) {
|
||||
console.error(`restore: backup does not exist: ${backup}`);
|
||||
process.exit(1);
|
||||
}
|
||||
if (target && existsSync(target)) {
|
||||
rmSync(target, { recursive: true, force: true });
|
||||
}
|
||||
renameSync(backup, target);
|
||||
process.stdout.write(`Restored ${backup} → ${target}\n`);
|
||||
break;
|
||||
}
|
||||
|
||||
case 'cleanup': {
|
||||
const path = args[0];
|
||||
if (path && existsSync(path)) {
|
||||
rmSync(path, { recursive: true, force: true });
|
||||
process.stdout.write(`Removed ${path}\n`);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 'tmppath': {
|
||||
const filename = args[0] || 'llm-security-temp.json';
|
||||
process.stdout.write(join(tmpdir(), filename) + '\n');
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
console.error('Usage: node fs-utils.mjs <backup|restore|cleanup|tmppath> [args...]');
|
||||
process.exit(1);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue