gustjose_obsidian-syncthing.../scripts/create-version.mjs

59 lines
2 KiB
JavaScript

import fs from "fs";
import path from "path";
// --- CONFIGURAÇÃO ---
// Ajuste para o caminho real do seu cofre de testes
const VAULT_PATH = "C:/Users/Gustavo/Android/dev-obsidian";
const FILENAME = "NotaComVersoes.md";
function generateTimestamp() {
const now = new Date();
// Formato Syncthing: YYYYMMDD-HHMMSS
const date = now.toISOString().slice(0, 10).replace(/-/g, "");
const time = now.toTimeString().slice(0, 8).replace(/:/g, "");
return `${date}-${time}`;
}
function createVersion() {
if (!fs.existsSync(VAULT_PATH)) {
console.error(`❌ Erro: O caminho do cofre não existe: ${VAULT_PATH}`);
process.exit(1);
}
const versionsDir = path.join(VAULT_PATH, ".stversions");
// 1. Garante que a pasta .stversions existe
if (!fs.existsSync(versionsDir)) {
fs.mkdirSync(versionsDir);
console.log(`📂 Pasta .stversions criada.`);
}
// 2. Cria o arquivo ATUAL no cofre
const currentPath = path.join(VAULT_PATH, FILENAME);
const currentContent = `# Versão Atual\n\nEsta é a versão que está visível no Obsidian agora.\n\nEditada em: ${new Date().toLocaleTimeString()}`;
fs.writeFileSync(currentPath, currentContent);
console.log(`✅ Arquivo atual criado: ${FILENAME}`);
// 3. Cria uma VERSÃO ANTIGA na pasta .stversions
// CORREÇÃO: Separa nome e extensão para formatar corretamente (Nome~Data.Ext)
const ext = path.extname(FILENAME); // .md
const name = path.basename(FILENAME, ext); // NotaComVersoes
const timestamp = generateTimestamp();
// Formato correto: Nome~Data.Extensão
const versionFilename = `${name}~${timestamp}${ext}`;
const versionPath = path.join(versionsDir, versionFilename);
const oldContent = `# Versão Antiga (Backup)\n\nEsta é uma versão arquivada pelo Syncthing.\n\nConteúdo antigo e precioso que foi "sobrescrito".`;
fs.writeFileSync(versionPath, oldContent);
console.log(
`📦 Versão arquivada criada em: .stversions/${versionFilename}`,
);
console.log(
"\n👉 Agora limpe a versão errada anterior da pasta .stversions e teste novamente!",
);
}
createVersion();