commit 5c05e60

default  ·  2022-11-23 15:46:18 +0000 UTC
parent 01a6266
New db_layout 2.2.
2 files changed,  +36, -2
M data.c
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;