mirror of
https://github.com/gustjose/obsidian-syncthing-manager.git
synced 2026-07-22 16:20:27 +00:00
59 lines
2 KiB
JavaScript
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();
|