summaryrefslogtreecommitdiff
path: root/upgrade.c
diff options
context:
space:
mode:
Diffstat (limited to 'upgrade.c')
-rw-r--r--upgrade.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/upgrade.c b/upgrade.c
index e4c75bb..d5e5f0c 100644
--- a/upgrade.c
+++ b/upgrade.c
@@ -40,6 +40,40 @@ int db_upgrade(d_char **error)
40 40
41 nf = 2.1; 41 nf = 2.1;
42 } 42 }
43 else
44 if (f < 2.2) {
45 xs *users = user_list();
46 char *p, *v;
47
48 p = users;
49 while (xs_list_iter(&p, &v)) {
50 snac snac;
51
52 if (user_open(&snac, v)) {
53 xs *spec = xs_fmt("%s/actors/" "*.json", snac.basedir);
54 xs *list = xs_glob(spec, 0, 0);
55 char *g, *fn;
56
57 g = list;
58 while (xs_list_iter(&g, &fn)) {
59 xs *l = xs_split(fn, "/");
60 char *b = xs_list_get(l, -1);
61 xs *dir = xs_fmt("%s/object/%c%c", srv_basedir, b[0], b[1]);
62 xs *nfn = xs_fmt("%s/%s", dir, b);
63
64 mkdir(dir, 0755);
65 rename(fn, nfn);
66 }
67
68 xs *odir = xs_fmt("%s/actors", snac.basedir);
69 rmdir(odir);
70
71 user_free(&snac);
72 }
73 }
74
75 nf = 2.2;
76 }
43 77
44 if (f < nf) { 78 if (f < nf) {
45 f = nf; 79 f = nf;