aboutsummaryrefslogtreecommitdiff
path: root/analyzer/utils/fs.c
diff options
context:
space:
mode:
authorMosder <xmosder12@gmail.com>2026-06-11 17:26:52 +0200
committerMosder <xmosder12@gmail.com>2026-06-11 17:26:52 +0200
commit070f39fc2b033bcf53797480c4b1ce27a0eb0f91 (patch)
treef1d77847c9baeffafcd790889f44bf1600010e11 /analyzer/utils/fs.c
parentfde7f41c89391a0d3ddebcbc7b5326c2a486a6ca (diff)
feat: added utils/fs.h for filesystem operations and made a function to create necessary directories
Diffstat (limited to 'analyzer/utils/fs.c')
-rw-r--r--analyzer/utils/fs.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/analyzer/utils/fs.c b/analyzer/utils/fs.c
new file mode 100644
index 0000000..76fb581
--- /dev/null
+++ b/analyzer/utils/fs.c
@@ -0,0 +1,43 @@
+#include "utils.h"
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+void get_home_dir(char *home_dir) {
+ strcpy(home_dir, getenv("HOME"));
+}
+
+void get_main_dir(char *main_dir) {
+ char home_dir[256];
+ get_home_dir(home_dir);
+ sprintf(main_dir, "%s/.local/share/branal", home_dir);
+}
+
+void get_capture_dir(char *capture_dir) {
+ char main_dir[256];
+ get_main_dir(main_dir);
+ sprintf(capture_dir, "%s/captures", main_dir);
+}
+
+void get_saves_dir(char *saves_dir) {
+ char main_dir[256];
+ get_main_dir(main_dir);
+ sprintf(saves_dir, "%s/saves", main_dir);
+}
+
+void create_necessary_directories() {
+ char main_dir[256], capture_dir[256], saves_dir[256];
+ get_main_dir(main_dir);
+ get_capture_dir(capture_dir);
+ get_saves_dir(saves_dir);
+ mkdir(main_dir, 0755);
+ mkdir(capture_dir, 0755);
+ mkdir(saves_dir, 0755);
+}
+
+void write_file(char *path, void *contents, int contents_len, int flags, mode_t permissions) {
+ int fd = open(path, flags, permissions);
+ write(fd, contents, contents_len);
+ close(fd);
+}