mirror of
https://github.com/felixrieseberg/macintosh.js.git
synced 2025-08-15 06:27:42 +00:00
fix: Protect against prefs write failure
This commit is contained in:
@@ -183,6 +183,8 @@ function writeSafely(filePath, fileData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getPrefs(userImages = []) {
|
function getPrefs(userImages = []) {
|
||||||
|
let result = '';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const prefsTemplatePath = path.join(__dirname, "prefs_template");
|
const prefsTemplatePath = path.join(__dirname, "prefs_template");
|
||||||
const prefsPath = path.join(__dirname, "prefs");
|
const prefsPath = path.join(__dirname, "prefs");
|
||||||
@@ -205,11 +207,13 @@ function getPrefs(userImages = []) {
|
|||||||
prefs += `\n`;
|
prefs += `\n`;
|
||||||
|
|
||||||
fs.writeFileSync(prefsPath, prefs);
|
fs.writeFileSync(prefsPath, prefs);
|
||||||
|
result = 'prefs';
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`getPrefs: Failed to set prefs`, error);
|
console.error(`getPrefs: Failed to set prefs`, error);
|
||||||
|
result = 'prefs_template';
|
||||||
}
|
}
|
||||||
|
|
||||||
return "prefs";
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isMacDirFileOfType(extension = "", v = "") {
|
function isMacDirFileOfType(extension = "", v = "") {
|
||||||
@@ -279,8 +283,8 @@ function copyUserImages() {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAutoLoadFiles(userImages = []) {
|
function getAutoLoadFiles(userImages = [], prefs = '') {
|
||||||
const autoLoadFiles = ["disk", "rom", "prefs", ...userImages];
|
const autoLoadFiles = ["disk", "rom", prefs, ...userImages];
|
||||||
return autoLoadFiles;
|
return autoLoadFiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -483,14 +487,15 @@ function startEmulator(parentConfig) {
|
|||||||
|
|
||||||
let AudioConfig = null;
|
let AudioConfig = null;
|
||||||
let AudioBufferQueue = [];
|
let AudioBufferQueue = [];
|
||||||
|
|
||||||
const userImages = copyUserImages();
|
const userImages = copyUserImages();
|
||||||
|
const prefs = getPrefs(userImages)
|
||||||
|
const arguments = getAutoLoadFiles(userImages, prefs);
|
||||||
|
|
||||||
Module = {
|
Module = {
|
||||||
autoloadFiles: getAutoLoadFiles(userImages),
|
autoloadFiles,
|
||||||
|
userImages,
|
||||||
userImages: userImages,
|
arguments,
|
||||||
|
|
||||||
arguments: ["--config", getPrefs(userImages)],
|
|
||||||
canvas: null,
|
canvas: null,
|
||||||
|
|
||||||
blit: function blit(bufPtr, width, height, depth, usingPalette) {
|
blit: function blit(bufPtr, width, height, depth, usingPalette) {
|
||||||
|
Reference in New Issue
Block a user