init: Improve error message formatting

Instead of manually formatting the error message and stack, use the same
formatting mechanism as we do when displaying errors to the user that
occur while opening extension preferences. This should correctly
indicate where syntax errors from imported modules occur.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3041>
This commit is contained in:
Philip Chimento 2023-12-31 19:13:25 -05:00 committed by Florian Müllner
parent e3ea12b8d5
commit 1692004b6b

View File

@ -2,6 +2,7 @@ import GLib from 'gi://GLib';
import Gio from 'gi://Gio';
import './environment.js';
import {formatError} from '../misc/errorUtils.js';
// Run the Mutter main loop after
// GJS finishes resolving this module.
@ -10,8 +11,7 @@ imports._promiseNative.setMainLoopHook(() => {
GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
import('./main.js').then(main => main.start()).catch(e => {
const error = new GLib.Error(
Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED,
`${e.message}\n${e.stack}`);
Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED, formatError(e));
global.context.terminate_with_error(error);
});
return GLib.SOURCE_REMOVE;