50 lines
1003 B
C
50 lines
1003 B
C
/*
|
|
FUSE: Filesystem in Userspace
|
|
Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
|
|
Copyright (C) 2011 Sebastian Pipping <sebastian@pipping.org>
|
|
|
|
ICFS: Interactively Controlled File System
|
|
Copyright (C) 2024-2025 Fedir Kovalov
|
|
|
|
This program can be distributed under the terms of the GNU GPLv2.
|
|
See the file LICENSE.
|
|
*/
|
|
|
|
#define FUSE_USE_VERSION 31
|
|
|
|
#define _GNU_SOURCE
|
|
|
|
#include <fuse3/fuse.h>
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "fuse_operations.h"
|
|
#include "sourcefs.h"
|
|
#include "ui-socket.h"
|
|
|
|
const char *mountpoint = NULL;
|
|
|
|
int main(int argc, char *argv[]) {
|
|
umask(0);
|
|
|
|
mountpoint = realpath(argv[argc - 1], NULL);
|
|
|
|
int ret = source_init(mountpoint);
|
|
if (ret != 0) {
|
|
perror("source_init");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
ret = init_ui_socket("/home/fedir/.icfs-sock");
|
|
if (ret != 0) {
|
|
perror("init_ui_socket");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
ret = fuse_main(argc, argv, get_fuse_operations(), NULL);
|
|
|
|
free(mountpoint);
|
|
return ret;
|
|
}
|