MCPcopy Create free account
hub / github.com/Microck/opencode-studio / restoreFromBackup

Function restoreFromBackup

server/index.js:1721–1751  ·  view source on GitHub ↗
(backup, studio)

Source from the content-addressed store, hash-verified

1719}
1720
1721function restoreFromBackup(backup, studio) {
1722 if (backup.studioConfig) {
1723 const merged = {
1724 ...backup.studioConfig,
1725 cloudProvider: studio.cloudProvider,
1726 cloudToken: studio.cloudToken,
1727 autoSync: studio.autoSync,
1728 lastSyncAt: studio.lastSyncAt
1729 };
1730 saveStudioConfig(merged);
1731 }
1732 if (backup.opencodeConfig) saveConfig(backup.opencodeConfig);
1733
1734 const sd = getActiveSkillDir();
1735 if (sd && backup.skills && Array.isArray(backup.skills)) {
1736 if (!fs.existsSync(sd)) fs.mkdirSync(sd, { recursive: true });
1737 backup.skills.forEach(s => {
1738 const skillDir = path.join(sd, s.name);
1739 if (!fs.existsSync(skillDir)) fs.mkdirSync(skillDir, { recursive: true });
1740 atomicWriteFileSync(path.join(skillDir, 'SKILL.md'), s.content);
1741 });
1742 }
1743
1744 const pd = getActivePluginDir();
1745 if (pd && backup.plugins && Array.isArray(backup.plugins)) {
1746 if (!fs.existsSync(pd)) fs.mkdirSync(pd, { recursive: true });
1747 backup.plugins.forEach(p => {
1748 atomicWriteFileSync(path.join(pd, `${p.name}.js`), p.content);
1749 });
1750 }
1751}
1752
1753app.get('/api/sync/status', (req, res) => {
1754 const studio = loadStudioConfig();

Callers 1

index.jsFile · 0.85

Calls 5

saveStudioConfigFunction · 0.85
getActiveSkillDirFunction · 0.85
atomicWriteFileSyncFunction · 0.85
getActivePluginDirFunction · 0.85
saveConfigFunction · 0.70

Tested by

no test coverage detected