summaryrefslogtreecommitdiff
path: root/Ladybird
diff options
context:
space:
mode:
authorIdan Horowitz <idan.horowitz@gmail.com>2022-10-09 20:32:45 +0300
committerAndrew Kaster <andrewdkaster@gmail.com>2022-12-25 07:58:58 -0700
commit775332e179b6c13938a649306fdcf1c8ae9d197d (patch)
treefbc08cb3c567db49e44a2204016179fa956eecce /Ladybird
parent52a7282c6429aedd3b214829fb2ec71fc122f8d4 (diff)
downloadserenity-775332e179b6c13938a649306fdcf1c8ae9d197d.zip
Ladybird: Accept file paths, domains, and URLs as an argument
This makes opening test files much more ergonomic :^)
Diffstat (limited to 'Ladybird')
-rw-r--r--Ladybird/main.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/Ladybird/main.cpp b/Ladybird/main.cpp
index e61cbb5215..1440bca34d 100644
--- a/Ladybird/main.cpp
+++ b/Ladybird/main.cpp
@@ -9,6 +9,7 @@
#include "Utilities.h"
#include <LibCore/ArgsParser.h>
#include <LibCore/EventLoop.h>
+#include <LibCore/File.h>
#include <LibGfx/Font/FontDatabase.h>
#include <LibMain/Main.h>
#include <QApplication>
@@ -29,10 +30,10 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
Gfx::FontDatabase::set_default_font_query("Katica 10 400 0");
Gfx::FontDatabase::set_fixed_width_font_query("Csilla 10 400 0");
- String url;
+ StringView raw_url;
Core::ArgsParser args_parser;
args_parser.set_general_help("The Ladybird web browser :^)");
- args_parser.add_positional_argument(url, "URL to open", "url", Core::ArgsParser::Required::No);
+ args_parser.add_positional_argument(raw_url, "URL to open", "url", Core::ArgsParser::Required::No);
args_parser.parse(arguments);
BrowserWindow window;
@@ -41,9 +42,14 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window.resize(800, 600);
window.show();
- if (!url.is_empty()) {
+ URL url = raw_url;
+ if (Core::File::exists(raw_url))
+ url = URL::create_with_file_scheme(Core::File::real_path_for(raw_url));
+ else if (!url.is_valid())
+ url = String::formatted("http://{}", raw_url);
+
+ if (url.is_valid())
window.view().load(url);
- }
return app.exec();
}