summaryrefslogtreecommitdiff
path: root/filesystems/sqlfs/files/patch-fuse_main.c
blob: 2e9fff3146e23ca65195cfb7041d00e9ba1ce258 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
--- fuse_main.c.orig	2006-10-25 15:28:26 UTC
+++ fuse_main.c
@@ -17,12 +17,60 @@ Foundation, Inc., 51 Franklin Street, Fi
 
 *****************************************************************************/
 
+#include <stdlib.h>
+#include <stdio.h>
+#include <sysexits.h>
 #include "sqlfs.h"
 
+void usage() __dead2;
+
+void usage()
+{
+	fprintf(stderr, "Usage: %s -o dbname [-h] dir\n", getprogname());
+
+	exit(EX_USAGE);
+}
 
 int main(int argc, char **argv)
 {
-    sqlfs_init("/tmp/fsdata");
+	char c;
+	int ret;
+	char *dbname = NULL;
+	char *args[2];
+	char *prog = argv[0];
+	
+	while ((c = getopt(argc, argv, "o:h")) != -1)
+		switch (c) {
+		case 'o':
+			dbname = strdup(optarg);
+			break;
+		case 'h':
+			/* FALLTHROUGH */
+		default:
+			usage();
+			/* NOTREACHED */
+		}
+		argc -= optind;
+		argv += optind;
+
+	if (dbname == NULL) {
+		dbname = getenv("SQLFS_DBNAME");
+	}
+
+	if (dbname == NULL || argc < 1)
+		usage();
+	/* NOTREACHED */
+
+	ret = sqlfs_init(dbname);
+	if (ret != 0)
+		return ret;
+
+	fprintf(stderr, "init\n");
+
+	args[0] = strdup(getprogname());
+	args[1] = strdup(argv[0]);
    
-    return sqlfs_fuse_main(argc, argv);
+	ret = sqlfs_fuse_main(2, args);
+	
+	return ret;
 }