ladybird/Userland/Libraries/LibCore
kleines Filmröllchen 0fd09b2381 LibCore: Automatically create config directories if necessary
If the .config directory (or its children, like lib) was deleted,
ConfigFile would crash because it would try to open or create a file in
a directory that didn't exist. Therefore, for user and library configs
(but not system configs), ensure that the parent directories exist. This
allows the user to delete the entire .config folder and all apps still
work. (Except those which can't handle missing config. That's a separate
issue though.)

Fixes #13555

Note: Some changes to pledges and unveils are necessary for this to
work. The only one who can recreate .config at the moment is
ConfigServer, as others probably don't pledge the user home directory.
2022-04-11 00:08:48 +02:00
..
Account.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Account.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
AnonymousBuffer.cpp LibCore: Convert AnonymousBuffer to use System::anon_create 2022-02-10 21:35:17 +01:00
AnonymousBuffer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ArgsParser.cpp LibCore+Base: Hide empty options sections in manpages 2022-04-06 11:39:08 +02:00
ArgsParser.h LibCore+Base: Add way to hide ArgsParser opt.s from specific usage texts 2022-04-06 11:39:08 +02:00
CMakeLists.txt LibCore: Introduce Directory 2022-04-11 00:08:48 +02:00
Command.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Command.h Everywhere: Rename CommandResult stdout, stderr members to output, error 2022-03-27 16:41:39 -07:00
ConfigFile.cpp LibCore: Automatically create config directories if necessary 2022-04-11 00:08:48 +02:00
ConfigFile.h LibCore: Automatically create config directories if necessary 2022-04-11 00:08:48 +02:00
DateTime.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
DateTime.h Userland: Remove a few gratuitous IPC namespace qualifiers 2022-04-03 15:18:20 +01:00
DeferredInvocationContext.h Libraries: Use default constructors/destructors in LibCore 2022-03-10 18:04:26 -08:00
Directory.cpp LibCore: Introduce Directory 2022-04-11 00:08:48 +02:00
Directory.h LibCore: Introduce Directory 2022-04-11 00:08:48 +02:00
DirIterator.cpp Userland: Fail Core::find_executable_in_path on empty inputs 2022-01-04 07:38:42 +00:00
DirIterator.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ElapsedTimer.cpp LibCore: Add ElapsedTimer::reset() 2021-10-28 11:21:18 +02:00
ElapsedTimer.h LibCore: Add ElapsedTimer::reset() 2021-10-28 11:21:18 +02:00
Event.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Event.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
EventLoop.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
EventLoop.h Libraries: Use default constructors/destructors in LibCore 2022-03-10 18:04:26 -08:00
File.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
File.h Userland+Tests: Convert File::read_link() from String to ErrorOr<String> 2022-03-24 11:57:51 +01:00
FilePermissionsMask.cpp LibCore: Improve handling of parsing errors in FilePermissionsMask 2022-01-24 07:50:32 +00:00
FilePermissionsMask.h LibCore: Add FilePermissionsMask 2022-01-01 17:33:43 +00:00
FileStream.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
FileWatcher.cpp LibCore: Replace Result<T, E> use with ErrorOr<T> in Core::FileWatcher 2021-11-08 00:35:27 +01:00
FileWatcher.h Libraries: Use default constructors/destructors in LibCore 2022-03-10 18:04:26 -08:00
Forward.h Core: Remove non-existent classes from Forward.h 2022-02-18 23:31:28 +00:00
GetPassword.cpp LibCore: Use LibCore syscall wrappers in get_password() 2021-11-30 23:34:40 +01:00
GetPassword.h LibCore: Use ErrorOr<T> for Core::get_password() 2021-11-08 00:35:27 +01:00
Group.cpp LibCore: Do not leak FILE pointer in Group::add_group() 2022-01-21 18:34:24 +01:00
Group.h LibCore: Use generic AK_OS_BSD_GENERIC to hide Group::add_group() 2022-01-21 18:34:24 +01:00
InputBitStream.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
IODevice.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
IODevice.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LocalServer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LocalServer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LockFile.cpp Everywhere: Use my cool new @serenityos.org email address 2021-09-01 11:37:25 +04:30
LockFile.h Everywhere: Use my cool new @serenityos.org email address 2021-09-01 11:37:25 +04:30
MappedFile.cpp LibCore: Use open() wrapper in Core::MappedFile :^) 2021-11-23 12:23:54 +01:00
MappedFile.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
MemoryStream.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
MimeData.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
MimeData.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NetworkJob.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NetworkJob.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NetworkResponse.h Libraries: Use default constructors/destructors in LibCore 2022-03-10 18:04:26 -08:00
Notifier.cpp LibCore: Remove unused header includes 2021-08-01 08:10:16 +02:00
Notifier.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Object.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Object.h LibCore: Turn size properties from an object into a size 2 array 2022-04-03 12:21:05 +02:00
Process.cpp LibCore: Explicitly declare environ in Process.cpp to unbreak macOS 2021-08-06 01:29:09 +02:00
Process.h LibCore: Add Core::Process::spawn() 2021-08-06 01:04:11 +02:00
ProcessStatisticsReader.cpp AK: Make JSON parser return ErrorOr<JsonValue> (instead of Optional) 2021-11-17 00:21:10 +01:00
ProcessStatisticsReader.h Everywhere: Make tracking cpu usage independent from system ticks 2021-07-18 22:08:26 +02:00
Promise.h Libraries: Fix visibility of Object-derivative constructors 2021-11-02 22:56:53 +01:00
Property.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Property.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Proxy.h pro: Accept an optional proxy to tunnel the download through 2022-04-09 12:21:43 +02:00
SecretString.cpp Everywhere: Convert ByteBuffer factory methods from Optional -> ErrorOr 2022-01-24 22:36:09 +01:00
SecretString.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
SocketAddress.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
SOCKSProxyClient.cpp LibCore+RequestServer: Add support for SOCKS5 proxies 2022-04-09 12:21:43 +02:00
SOCKSProxyClient.h LibCore+RequestServer: Add support for SOCKS5 proxies 2022-04-09 12:21:43 +02:00
StandardPaths.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StandardPaths.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Stream.cpp LibCore: Extract Stream::OpenMode conversion helper into static function 2022-04-11 00:08:48 +02:00
Stream.h LibCore: Extract Stream::OpenMode conversion helper into static function 2022-04-11 00:08:48 +02:00
System.cpp LibCore: Add openat() syscall wrapper and improve open's implementation 2022-04-11 00:08:48 +02:00
System.h LibCore: Add openat() syscall wrapper and improve open's implementation 2022-04-11 00:08:48 +02:00
SystemServerTakeover.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
SystemServerTakeover.h LibCore+LibIPC: Move SystemServerTakeover.{h,cpp} to LibCore 2022-02-06 10:28:19 +01:00
TCPServer.cpp LibCore+Userland: Remove Core::TCPSocket :^) 2022-02-06 17:28:17 +00:00
TCPServer.h LibCore+Userland+Tests: Convert Stream APIs to construct on heap 2022-01-13 15:16:12 +03:30
TempFile.cpp Userland: Remove a bunch of unnecessary Vector imports 2022-01-28 23:40:25 +01:00
TempFile.h LibCore: Add utility class for temporary files and directories 2022-01-12 14:55:19 +01:00
Timer.cpp Libraries: Use default constructors/destructors in LibCore 2022-03-10 18:04:26 -08:00
Timer.h Libraries: Use default constructors/destructors in LibCore 2022-03-10 18:04:26 -08:00
UDPServer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
UDPServer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
UmaskScope.h LibCore: Add Core::UmaskScope to set and unset a temporary umask 2022-01-02 18:08:02 +01:00
Version.cpp LibCore+Everywhere: Return ErrorOr from ConfigFile factory methods 2022-02-16 19:49:41 -05:00
Version.h LibCore: Refactor a version-reading utility 2021-09-02 16:17:18 +01:00