commit 5c05e60
default
·
2022-11-23 15:46:18 +0000 UTC
parent 01a6266
New db_layout 2.2.
M
data.c
+2,
-2
1@@ -14,7 +14,7 @@
2 #include <sys/file.h>
3 #include <fcntl.h>
4
5-double db_layout = 2.1;
6+double db_layout = 2.2;
7
8
9 int db_upgrade(d_char **error);
10@@ -195,7 +195,7 @@ double mtime(char *fn)
11
12 d_char *_object_fn_by_md5(const char *md5)
13 {
14- xs *bfn = xs_fmt("%s/object/%c%c/", srv_basedir, md5[0], md5[1]);
15+ xs *bfn = xs_fmt("%s/object/%c%c", srv_basedir, md5[0], md5[1]);
16
17 mkdir(bfn, 0755);
18
+34,
-0
1@@ -40,6 +40,40 @@ int db_upgrade(d_char **error)
2
3 nf = 2.1;
4 }
5+ else
6+ if (f < 2.2) {
7+ xs *users = user_list();
8+ char *p, *v;
9+
10+ p = users;
11+ while (xs_list_iter(&p, &v)) {
12+ snac snac;
13+
14+ if (user_open(&snac, v)) {
15+ xs *spec = xs_fmt("%s/actors/" "*.json", snac.basedir);
16+ xs *list = xs_glob(spec, 0, 0);
17+ char *g, *fn;
18+
19+ g = list;
20+ while (xs_list_iter(&g, &fn)) {
21+ xs *l = xs_split(fn, "/");
22+ char *b = xs_list_get(l, -1);
23+ xs *dir = xs_fmt("%s/object/%c%c", srv_basedir, b[0], b[1]);
24+ xs *nfn = xs_fmt("%s/%s", dir, b);
25+
26+ mkdir(dir, 0755);
27+ rename(fn, nfn);
28+ }
29+
30+ xs *odir = xs_fmt("%s/actors", snac.basedir);
31+ rmdir(odir);
32+
33+ user_free(&snac);
34+ }
35+ }
36+
37+ nf = 2.2;
38+ }
39
40 if (f < nf) {
41 f = nf;