Serenity Operating System
1/*
2 * Copyright (c) 2022, MacDue <macdue@dueutil.tech>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#include <AK/StringView.h>
8#include <LibGUI/MessageBox.h>
9#include <LibGUI/Process.h>
10
11template<typename StringType>
12void spawn_or_show_error(GUI::Window* parent_window, StringView path, ReadonlySpan<StringType> arguments)
13{
14 auto spawn_result = Core::Process::spawn(path, arguments);
15 if (spawn_result.is_error())
16 GUI::MessageBox::show_error(parent_window, DeprecatedString::formatted("Failed to spawn {}: {}", path, spawn_result.error()));
17}
18
19namespace GUI {
20
21void Process::spawn_or_show_error(Window* parent_window, StringView path, ReadonlySpan<DeprecatedString> arguments)
22{
23 ::spawn_or_show_error<DeprecatedString>(parent_window, path, arguments);
24}
25
26void Process::spawn_or_show_error(Window* parent_window, StringView path, ReadonlySpan<StringView> arguments)
27{
28 ::spawn_or_show_error<StringView>(parent_window, path, arguments);
29}
30
31void Process::spawn_or_show_error(Window* parent_window, StringView path, ReadonlySpan<char const*> arguments)
32{
33 ::spawn_or_show_error<char const*>(parent_window, path, arguments);
34}
35
36}