🌳
pt0/ipfsF/ipfsDbActionsAI.mts
10export const ipfsbackup = async ({db, qsName}: {db: any, qsName: string}) => {
11 const rows = await db('generic_kvs').where('key', 'like', 'ipfs_mfsroot_%').select('key', 'value')
12 const rootCids = rows.filter((r: any) => r.value).map((r: any) => ({label: r.key, cid: r.value}))
14 if (rootCids.length === 0) {
15 betLog('ipfsBackupNoData', {qsName})
16 return
17 }
19 return await backupIpfsContent({rootCids})
21ipfsbackup.cliDescript = 'download all ipfs content to ~/ptdisk/ipfsbackups/<label>/'
23export const ipfsrestore = async ({db, qsName}: {db: any, qsName: string}) => {
24 const label = `ipfs_mfsroot_${qsName}`
25 return await restoreIpfsContent({label, db})
27ipfsrestore.cliDescript = 'restore ipfs content from ~/ptdisk/ipfsbackups/<label>/'
29export const ipfsdir = async ({qsName}: {qsName: string}) => {
30 const label = `ipfs_mfsroot_${qsName}`
31 const dirPath = getIpfsBackupDir({label})
32 await mkDirUnlessExist(dirPath)
33 await live2SpawnThrow({cmd: `open ${dirPath}`})
34 betLog({dirPath})
36ipfsdir.noWrapDbConn = true
37ipfsdir.cliDescript = 'open ~/ptdisk/ipfsbackups/<label>/ in Finder'
39export const fixmfs = async ({db, qsName}: {db: any, qsName: string}) => {
40 dbCtx.enterWith({db, dbKys: null})
41 return await findAndFixOrphanedCids({db, qsName})
43fixmfs.cliDescript = 'find IPFS media not in MFS root and pin + add them'