a LOT sync fixes...
This commit is contained in:
parent
c0f6e802ed
commit
806e173e43
14 changed files with 1073 additions and 240 deletions
|
|
@ -3,6 +3,7 @@
|
|||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
const { DIRS, readJson, writeJson } = require('./paths')
|
||||
const { rewireSymlinks } = require('./symlinks')
|
||||
|
||||
const REGISTRY = path.join(DIRS.DATA, 'prefixes.json')
|
||||
const MAIN = 'Main'
|
||||
|
|
@ -85,6 +86,15 @@ function deletePrefix(name) {
|
|||
return { ok: true }
|
||||
}
|
||||
|
||||
// A prefix that arrived from another machine (or a launcher that was moved) is
|
||||
// full of absolute symlinks into its wine/proton build - fonts, built-in
|
||||
// program stubs, dlls. Rewire them to relative paths so the prefix keeps
|
||||
// working here and stays relocatable (same healing wine builds get on import).
|
||||
async function healPrefix(name) {
|
||||
if (!name) return 0
|
||||
return rewireSymlinks(prefixPath(name), [DIRS.FILES])
|
||||
}
|
||||
|
||||
function setDefaultPrefix(name) {
|
||||
const defs = listPrefixes()
|
||||
if (name && !defs.prefixes.some(p => p.name === name)) return { ok: false, error: 'notFound' }
|
||||
|
|
@ -93,4 +103,4 @@ function setDefaultPrefix(name) {
|
|||
return { ok: true }
|
||||
}
|
||||
|
||||
module.exports = { listPrefixes, savePrefixes, createPrefix, deletePrefix, setDefaultPrefix, prefixPath, prefixExists, prefixDriveRoot, normalizeName, MAIN }
|
||||
module.exports = { listPrefixes, savePrefixes, createPrefix, deletePrefix, setDefaultPrefix, prefixPath, prefixExists, prefixDriveRoot, healPrefix, normalizeName, MAIN }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue