mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
fix(desktop): improve tauri permissions and settings UX
This commit is contained in:
@@ -23,6 +23,106 @@ const dependencySections = [
|
||||
|
||||
const touched = []
|
||||
|
||||
function syncDesktopTauriConfigVersion(version) {
|
||||
const tauriConfigPath = path.join(
|
||||
rootDir,
|
||||
'packages',
|
||||
'desktop',
|
||||
'src-tauri',
|
||||
'tauri.conf.json'
|
||||
)
|
||||
|
||||
if (!existsSync(tauriConfigPath)) {
|
||||
return
|
||||
}
|
||||
|
||||
const tauriConfig = JSON.parse(readFileSync(tauriConfigPath, 'utf8'))
|
||||
if (tauriConfig.version === version) {
|
||||
return
|
||||
}
|
||||
|
||||
tauriConfig.version = version
|
||||
writeFileSync(tauriConfigPath, `${JSON.stringify(tauriConfig, null, 2)}\n`)
|
||||
touched.push(path.relative(rootDir, tauriConfigPath))
|
||||
}
|
||||
|
||||
function syncDesktopCargoPackageVersion(version) {
|
||||
const cargoTomlPath = path.join(
|
||||
rootDir,
|
||||
'packages',
|
||||
'desktop',
|
||||
'src-tauri',
|
||||
'Cargo.toml'
|
||||
)
|
||||
|
||||
if (!existsSync(cargoTomlPath)) {
|
||||
return
|
||||
}
|
||||
|
||||
const cargoLines = readFileSync(cargoTomlPath, 'utf8').split(/\r?\n/)
|
||||
let inPackageSection = false
|
||||
let updated = false
|
||||
|
||||
const nextLines = cargoLines.map((line) => {
|
||||
if (/^\[package\]\s*$/.test(line)) {
|
||||
inPackageSection = true
|
||||
return line
|
||||
}
|
||||
|
||||
if (inPackageSection && /^\[/.test(line)) {
|
||||
inPackageSection = false
|
||||
return line
|
||||
}
|
||||
|
||||
if (inPackageSection && /^version\s*=\s*".*"\s*$/.test(line)) {
|
||||
const expectedLine = `version = "${version}"`
|
||||
if (line === expectedLine) {
|
||||
return line
|
||||
}
|
||||
updated = true
|
||||
return expectedLine
|
||||
}
|
||||
|
||||
return line
|
||||
})
|
||||
|
||||
if (!updated) {
|
||||
return
|
||||
}
|
||||
|
||||
writeFileSync(cargoTomlPath, `${nextLines.join('\n')}\n`)
|
||||
touched.push(path.relative(rootDir, cargoTomlPath))
|
||||
}
|
||||
|
||||
function syncDesktopInfoPlistVersion(version) {
|
||||
const infoPlistPath = path.join(
|
||||
rootDir,
|
||||
'packages',
|
||||
'desktop',
|
||||
'src-tauri',
|
||||
'Info.plist'
|
||||
)
|
||||
|
||||
if (!existsSync(infoPlistPath)) {
|
||||
return
|
||||
}
|
||||
|
||||
const current = readFileSync(infoPlistPath, 'utf8')
|
||||
|
||||
const shortVersionPattern = /(<key>CFBundleShortVersionString<\/key>\s*<string>)([^<]+)(<\/string>)/
|
||||
const bundleVersionPattern = /(<key>CFBundleVersion<\/key>\s*<string>)([^<]+)(<\/string>)/
|
||||
|
||||
let next = current.replace(shortVersionPattern, `$1${version}$3`)
|
||||
next = next.replace(bundleVersionPattern, `$1${version}$3`)
|
||||
|
||||
if (next === current) {
|
||||
return
|
||||
}
|
||||
|
||||
writeFileSync(infoPlistPath, next)
|
||||
touched.push(path.relative(rootDir, infoPlistPath))
|
||||
}
|
||||
|
||||
for (const workspacePath of workspacePaths) {
|
||||
const packagePath = path.join(rootDir, workspacePath, 'package.json')
|
||||
if (!existsSync(packagePath)) {
|
||||
@@ -63,6 +163,10 @@ for (const workspacePath of workspacePaths) {
|
||||
}
|
||||
}
|
||||
|
||||
syncDesktopTauriConfigVersion(rootVersion)
|
||||
syncDesktopCargoPackageVersion(rootVersion)
|
||||
syncDesktopInfoPlistVersion(rootVersion)
|
||||
|
||||
if (touched.length === 0) {
|
||||
console.log(`Workspace versions and internal deps already synced to ${rootVersion}`)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user