Files
geekgeekrun/packages/utils/windows-only/file.mjs

26 lines
710 B
JavaScript

import * as childProcess from 'node:child_process'
export const getExecutableFileVersion = async (p) => {
const path = await import('node:path/win32')
p = path.resolve(p).replaceAll('\\', '\\\\')
return new Promise(
(resolve, reject) => {
childProcess.exec(
`wmic datafile where Name="${
p
}" get Version /format:list`,
(err, stdout) => {
if (err) {
console.log(err)
reject(err)
} else {
const lines = stdout.trim().split('\n').map(it => it.split('='))
const versionLine = lines.find(ln => ln[0] === 'Version')
resolve(versionLine?.[1])
}
}
)
}
)
}