From bad5373e915d86a31050c92cd1f775317fec648f Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Tue, 24 Feb 2026 09:13:46 -0300 Subject: [PATCH] feat: add sync-civo command to replicate all files to Euronodes --- scripts/sync-vault.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/scripts/sync-vault.js b/scripts/sync-vault.js index d5b590b..4b7c721 100644 --- a/scripts/sync-vault.js +++ b/scripts/sync-vault.js @@ -100,6 +100,25 @@ async function syncFromCloud() { } } +async function syncCivoToEuronodes() { + console.log('=== Sincronizando Civo -> Euronodes ===\n'); + + const civoFiles = await listObjects(civo, 'rede5', 'vault/ssh/'); + console.log(`Encontrados ${civoFiles.length} arquivos no Civo\n`); + + for (const obj of civoFiles) { + const key = obj.Key.replace('vault/', ''); + + try { + const body = await downloadFile(civo, 'rede5', obj.Key); + await uploadFile(euronodes, 'vault', key, body); + console.log(`[EURONODES] ✅ ${key}`); + } catch (err) { + console.log(`[EURONODES] ❌ ${key}: ${err.message}`); + } + } +} + async function listCloud() { console.log('=== Listando arquivos nos Object Storages ===\n'); @@ -123,6 +142,9 @@ switch (action) { case 'download': syncFromCloud(); break; + case 'sync-civo': + syncCivoToEuronodes(); + break; case 'list': default: listCloud();