Ver código fonte

AppFile: Add helpers for dealing with AppFile paths

david072 1 ano atrás
pai
commit
124611b256

+ 12 - 2
Userland/Libraries/LibDesktop/AppFile.cpp

@@ -12,13 +12,23 @@
 #include <LibCore/DirIterator.h>
 #include <LibCore/Process.h>
 #include <LibDesktop/AppFile.h>
+#include <LibFileSystem/FileSystem.h>
 
 namespace Desktop {
 
+DeprecatedString AppFile::app_file_path_for_app(StringView app_name)
+{
+    return DeprecatedString::formatted("{}/{}.af", APP_FILES_DIRECTORY, app_name);
+}
+
+bool AppFile::exists_for_app(StringView app_name)
+{
+    return FileSystem::exists(app_file_path_for_app(app_name));
+}
+
 NonnullRefPtr<AppFile> AppFile::get_for_app(StringView app_name)
 {
-    auto path = DeprecatedString::formatted("{}/{}.af", APP_FILES_DIRECTORY, app_name);
-    return open(path);
+    return open(app_file_path_for_app(app_name));
 }
 
 NonnullRefPtr<AppFile> AppFile::open(StringView path)

+ 4 - 0
Userland/Libraries/LibDesktop/AppFile.h

@@ -17,6 +17,10 @@ class AppFile : public RefCounted<AppFile> {
 public:
     static constexpr auto APP_FILES_DIRECTORY = "/res/apps"sv;
 
+    static bool exists_for_app(StringView app_name);
+    static DeprecatedString file_for_app(StringView app_name);
+    static DeprecatedString app_file_path_for_app(StringView app_name);
+
     static NonnullRefPtr<AppFile> get_for_app(StringView app_name);
     static NonnullRefPtr<AppFile> open(StringView path);
     static void for_each(Function<void(NonnullRefPtr<AppFile>)>, StringView directory = APP_FILES_DIRECTORY);

+ 1 - 1
Userland/Libraries/LibDesktop/CMakeLists.txt

@@ -10,4 +10,4 @@ set(GENERATED_SOURCES
 )
 
 serenity_lib(LibDesktop desktop)
-target_link_libraries(LibDesktop PRIVATE LibCore LibIPC LibGfx LibGUI)
+target_link_libraries(LibDesktop PRIVATE LibCore LibIPC LibGfx LibGUI LibFileSystem)