Commit | Line | Data |
---|---|---|
27e48ace AC |
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 | ||
89627e97 AC |
20 | fun subscribed (list, address) = OS.Process.isSuccess (OS.Process.system (String.concat |
21 | ["/usr/bin/sudo /usr/local/bin/portalsub ", | |
22 | list, | |
23 | " check ", | |
24 | address])) | |
25 | ||
26 | fun subscribe (list, address) = OS.Process.isSuccess (OS.Process.system (String.concat | |
27 | ["/usr/bin/sudo /usr/local/bin/portalsub ", | |
28 | list, | |
29 | " add ", | |
30 | address])) | |
31 | ||
32 | fun unsubscribe (list, address) = OS.Process.isSuccess (OS.Process.system (String.concat | |
33 | ["/usr/bin/sudo /usr/local/bin/portalsub ", | |
34 | list, | |
35 | " rm ", | |
36 | address])) | |
37 | ||
27e48ace | 38 | end |