From 3b5c7b0c25f92a1b57fc3711657e84229b687f9c Mon Sep 17 00:00:00 2001 From: Carson Katri Date: Thu, 18 Sep 2025 16:36:03 -0400 Subject: [PATCH] Add getAppDir implementation for iOS --- src/.DS_Store | Bin 0 -> 6148 bytes src/app.zig | 18 +++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 src/.DS_Store diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..8c89251d50d708be60be611e3be26b0189bce62b GIT binary patch literal 6148 zcmeHKy-EW?5T4B?8Wlu46^pYG#42DVDrbyOU?bR=KUBzhA&H1!aiA}tg<$6+_yEDi z!p25RAHY|z^_$)G-1SbeQABoN_uJc<+3(v)vYR6!Q9fvth{lMhh{l*7Mwemi=a#aZ zo|y&;xki_o)M@RMHtJC-+D*6$xC;EW3h-}tkZRPShz`m4{f2ERb@Xg19T7&AO05;u z;3;lR_HPH5?^d&-8sCU&@A7G(*~VimLmt(sL2Y%8Xix5?{O&RN7dDqqW>+M?&I_Y= z-n7@^^RAdL54I}xsA@45ycyGHa;`1*M;@0XXOe5OX8A4N0-v|w-34p!!%oG(yy-J} z!;9#6LG3lkHF>lA7O(KJG(PVR9ne0Q_b8;MwQKM6Asu0A7`RXN{$U+c$>&j)9`Bm< z3_(egT4+#%afgm9O;ozfjxu!}Jtw*{)-$zz9ck&Kfb|umzApN%rAs`W+g?-8T<_-X zJ7VOUI31y{mw$fU7`K0X`pmG{!(zK#nt#tKzB3CWCgG_%leC_=Jh-k0Gd0)?)36>t@> zE8wZeF~0xTKY#zXliZW5fUCg2s({E>HY#OoN#Cuh&GB99qiv(Haa^oWrl8Z;u^jMK dJb@++KA#7`Kx3>BGcfl@K$gLEt^&VWfmea-->U!s literal 0 HcmV?d00001 diff --git a/src/app.zig b/src/app.zig index 624b0b27..9ced67a7 100644 --- a/src/app.zig +++ b/src/app.zig @@ -94,16 +94,24 @@ pub const App = struct { } }; +fn getAppDir(allocator: Allocator) ![]const u8 { + if (@import("builtin").os.tag == .ios) { + // std.fs.getAppDataDir is not available on iOS, so we inline the same macOS implementation here. + const home_dir = std.posix.getenv("HOME") orelse { + return error.AppDataDirUnavailable; + }; + return std.fs.path.join(allocator, &[_][]const u8{ home_dir, "Library", "Application Support", "lightpanda" }); + } else { + return try std.fs.getAppDataDir(allocator, "lightpanda"); + } +} + fn getAndMakeAppDir(allocator: Allocator) ?[]const u8 { if (@import("builtin").is_test) { return allocator.dupe(u8, "/tmp") catch unreachable; } - if (@import("builtin").os.tag == .ios) { - return null; // getAppDataDir is not available on iOS - } - - const app_dir_path = std.fs.getAppDataDir(allocator, "lightpanda") catch |err| { + const app_dir_path = getAppDir(allocator) catch |err| { log.warn(.app, "get data dir", .{ .err = err }); return null; };