Script agency-archivist: compatibilità universale e {project}/
- extract_archive.js: --client → --project, rimossa dipendenza da .openclaw
- scan_resources.js: --client → --project, basePath configurabile
- generate_catalog.js: --client → --project, basePath configurabile
- Environment variable: AGENCY_PROJECTS_BASE per specificare base directory
- Default: current working directory (compatibile con qualsiasi sistema)
- Percorsi aggiornati: clients/{client}/ → {project}/
- Documentazione script aggiornata (usage, options, examples)
Vantaggi:
✅ Compatibile con OpenClaw e altri sistemi
✅ Non richiede struttura .openclaw/workspace
✅ Configurabile via ENV o --base-path
✅ Funziona in qualsiasi directory di progetto
This commit is contained in:
parent
f0605645d3
commit
0b4c56d744
3 changed files with 68 additions and 55 deletions
|
|
@ -3,8 +3,8 @@
|
|||
* generate_catalog.js — Genera catalogo markdown dai metadata
|
||||
*
|
||||
* Usage:
|
||||
* node generate_catalog.js --client <client_name>
|
||||
* node generate_catalog.js --client demo_co_srl
|
||||
* node generate_catalog.js --project <project_name>
|
||||
* node generate_catalog.js --project demo_co_srl
|
||||
*
|
||||
* Options:
|
||||
* --input Path metadata JSON
|
||||
|
|
@ -158,13 +158,15 @@ function generateGlobalTags(resources) {
|
|||
return sortedTags.map(t => `#${t}`).join(' ');
|
||||
}
|
||||
|
||||
function generateCatalog(clientName, metadata, outputPath, verbose = false) {
|
||||
function generateCatalog(projectName, metadata, outputPath, verbose = false) {
|
||||
const resources = metadata.resources || [];
|
||||
const generated = (metadata.generated || new Date().toISOString()).split('T')[0];
|
||||
|
||||
const grouped = groupByType(resources);
|
||||
|
||||
const catalog = `# Asset Catalog — ${clientName.replace(/_/g, ' ').split(' ').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')}
|
||||
const projectNameFormatted = projectName ? projectName.replace(/_/g, ' ').split(' ').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ') : 'Progetto';
|
||||
|
||||
const catalog = `# Asset Catalog — ${projectNameFormatted}
|
||||
|
||||
_Generato: ${generated} | Totale: ${resources.length} risorse_
|
||||
|
||||
|
|
@ -220,36 +222,39 @@ ${generateGlobalTags(resources)}
|
|||
function main() {
|
||||
const args = process.argv.slice(2);
|
||||
|
||||
let client = null;
|
||||
let project = null;
|
||||
let inputPath = null;
|
||||
let outputPath = null;
|
||||
let verbose = false;
|
||||
let basePath = process.env.AGENCY_PROJECTS_BASE || process.cwd();
|
||||
|
||||
for (let i = 0; i < args.length; i++) {
|
||||
if (args[i] === '--client' && args[i + 1]) {
|
||||
client = args[++i];
|
||||
if (args[i] === '--project' && args[i + 1]) {
|
||||
project = args[++i];
|
||||
} else if (args[i] === '--input' && args[i + 1]) {
|
||||
inputPath = args[++i];
|
||||
} else if (args[i] === '--output' && args[i + 1]) {
|
||||
outputPath = args[++i];
|
||||
} else if (args[i] === '--base-path' && args[i + 1]) {
|
||||
basePath = args[++i];
|
||||
} else if (args[i] === '--verbose') {
|
||||
verbose = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!client) {
|
||||
console.error('Usage: node generate_catalog.js --client <client_name>');
|
||||
console.error('Options: --input, --output, --verbose');
|
||||
if (!project) {
|
||||
console.error('Usage: node generate_catalog.js --project <project_name>');
|
||||
console.error('Options: --base-path <dir>, --input, --output, --verbose');
|
||||
console.error('Environment: AGENCY_PROJECTS_BASE (opzionale)');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Path
|
||||
const workspace = path.join(os.homedir(), '.openclaw', 'workspace', 'agency-skills-suite');
|
||||
const clientDir = path.join(workspace, 'clients', client);
|
||||
const assetsDir = path.join(clientDir, 'assets');
|
||||
const projectDir = path.join(basePath, project);
|
||||
const assetsDir = path.join(projectDir, 'assets');
|
||||
|
||||
if (!fs.existsSync(clientDir)) {
|
||||
console.error(`❌ Cartella cliente non trovata: ${clientDir}`);
|
||||
if (!fs.existsSync(projectDir)) {
|
||||
console.error(`❌ Cartella progetto non trovata: ${projectDir}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
|
|
@ -282,7 +287,7 @@ function main() {
|
|||
const metadata = loadMetadata(inputPath);
|
||||
|
||||
// Genera catalogo
|
||||
generateCatalog(client, metadata, outputPath, verbose);
|
||||
generateCatalog(project, metadata, outputPath, verbose);
|
||||
|
||||
// Riepilogo
|
||||
const resources = metadata.resources || [];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue