code refactor & sync bugfixes
This commit is contained in:
parent
2bcb47076a
commit
9edcc9841b
20 changed files with 820 additions and 812 deletions
24
src/wines.js
24
src/wines.js
|
|
@ -4,7 +4,7 @@ const fs = require('fs')
|
|||
const fsp = fs.promises
|
||||
const path = require('path')
|
||||
const { DIRS, readJson, writeJson, toPortablePath, resolvePortablePath } = require('./paths')
|
||||
const { dedupeDir, copyTree, treeSize, removeTree } = require('./fsutil')
|
||||
const { dedupeDir, copyTree, treeSize, removeTree, pathExists } = require('./fsutil')
|
||||
const { normalizeLabel } = require('./names')
|
||||
const { rewireSymlinks, restoreExecutableBits, EXEC_NAMES } = require('./symlinks')
|
||||
|
||||
|
|
@ -12,14 +12,7 @@ const WINES_DIR = DIRS.WINES
|
|||
const REGISTRY = path.join(DIRS.DATA, 'wines.json')
|
||||
const DEFAULT_KEY = 'defaultWine'
|
||||
|
||||
function exists(p) {
|
||||
try {
|
||||
fs.accessSync(p)
|
||||
return true
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
}
|
||||
const exists = pathExists
|
||||
|
||||
function detectType(dir) {
|
||||
if (exists(path.join(dir, 'proton'))) return 'proton'
|
||||
|
|
@ -343,4 +336,15 @@ async function importWineFolder(srcDir, onProgress) {
|
|||
return { ok: true, path: toPortablePath(dst), symlinksFixed: healed.links, executablesFixed: healed.executables }
|
||||
}
|
||||
|
||||
module.exports = { refreshWines, getWines, getWine, resolveWine, setWineDisabled, setWineDisplayName, clearWineDisplayName, getDefaultWine, setDefaultWine, deleteWine, importWineFolder, findWineBinary, detectType, fixBuildSymlinks, healBuild }
|
||||
// The pseudo entry for the distro's wine, offered next to the imported
|
||||
// builds; version probe is best-effort (a PATH without wine still lists it).
|
||||
function systemWine() {
|
||||
let version = ''
|
||||
try {
|
||||
const { execFileSync } = require('child_process')
|
||||
version = String(execFileSync('wine', ['--version'], { timeout: 15000 })).trim().replace(/^wine-?/i, '')
|
||||
} catch {}
|
||||
return { id: 'system', type: 'system', label: 'System Wine', version }
|
||||
}
|
||||
|
||||
module.exports = { refreshWines, getWines, getWine, resolveWine, systemWine, setWineDisabled, setWineDisplayName, clearWineDisplayName, getDefaultWine, setDefaultWine, deleteWine, importWineFolder, findWineBinary, detectType, fixBuildSymlinks, healBuild }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue