566fd712 |
1 | structure Pref :> PREF = |
2 | struct |
3 | |
4 | open Util Sql Init |
5 | |
6 | fun hasDirectory usr = |
7 | case C.oneOrNoRows (getDb ()) ($`SELECT * FROM DirectoryPref WHERE usr = ^(C.intToSql usr)`) of |
8 | NONE => false |
9 | | _ => true |
10 | |
11 | fun setDirectory usr = |
12 | if hasDirectory usr then |
13 | () |
14 | else |
15 | ignore (C.dml (getDb ()) ($`INSERT INTO DirectoryPref (usr) VALUES (^(C.intToSql usr))`)) |
16 | |
17 | fun unsetDirectory usr = |
18 | ignore (C.dml (getDb ()) ($`DELETE FROM DirectoryPref WHERE usr = ^(C.intToSql usr)`)) |
19 | |
56c0e176 |
20 | fun subscribed (list, address) = OS.Process.isSuccess (OS.Process.system (String.concat |
fd650826 |
21 | ["/usr/bin/sudo -u list /usr/local/bin/portalsub ", |
56c0e176 |
22 | list, |
23 | " check ", |
24 | address])) |
25 | |
26 | fun subscribe (list, address) = OS.Process.isSuccess (OS.Process.system (String.concat |
fd650826 |
27 | ["/usr/bin/sudo -u list /usr/local/bin/portalsub ", |
56c0e176 |
28 | list, |
29 | " add ", |
30 | address])) |
31 | |
32 | fun unsubscribe (list, address) = OS.Process.isSuccess (OS.Process.system (String.concat |
fd650826 |
33 | ["/usr/bin/sudo -u list /usr/local/bin/portalsub ", |
56c0e176 |
34 | list, |
35 | " rm ", |
36 | address])) |
37 | |
fd650826 |
38 | end |