Skip to content

Commit

Permalink
Merge pull request #474 from chakflying/fix/dirty-path
Browse files Browse the repository at this point in the history
Fix: Check for non-ASCII before using dirtyPath
  • Loading branch information
jurgelenas authored Feb 5, 2023
2 parents 4e5f7bb + dbb0d27 commit 23808d2
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions src/main.dev.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,30 @@ logger.log('path', {
PATH: process.env.PATH,
});

function isASCII(str: string) {
return /^[\x20-\x7F]*$/.test(str);
}

const isWindows = process.platform.startsWith('win');
const isMacOS = process.platform.startsWith('darwin');
let userDataDirectory = app.getPath('userData');

if (isWindows) {
const dirtyUserDataDirectory = app.isPackaged
? path.join('c:', `.${packageJson.name}`)
: path.join('c:', `.${packageJson.name}-dev`);
try {
mkdirp.sync(dirtyUserDataDirectory);
userDataDirectory = dirtyUserDataDirectory;
logger.log(
`using ${dirtyUserDataDirectory} directory for firmware storage`
);
if (!isASCII(userDataDirectory)) {
mkdirp.sync(dirtyUserDataDirectory);
userDataDirectory = dirtyUserDataDirectory;
logger.log(
`Non-ASCII path detected, using ${dirtyUserDataDirectory} directory for firmware storage`
);
} else {
logger.log(
`using appdata path ${userDataDirectory} for firmware storage`
);
}
} catch (err) {
logger.error(
'failed to create c:/.expresslrs directory, will use usual path',
Expand Down

0 comments on commit 23808d2

Please sign in to comment.