This document describes what a sicconfd command looks like, how to get special characters inside the arguments and which the main commands are.
All commands in sicconfd consists of step-wise refinements of a basic command. For example:
user viktor filter spam whitelist add email@example.com
The main command is user. This command always takes one argument: the account name of the user in question (here "viktor"). In this case it is one of viktors filter we want, and more specifically the spam-filtering. We want to manipulate its whitelist by adding firstname.lastname@example.org.
Some may feel annoyed over the fact that the arguments "come in a backwards order". If you belong to this group try adding some extra punctuation in your head while reading and it might feel a little better: user(viktor).filter(spam).whitelist.add(email@example.com).
But whatever you do don't write this to the daemon or you will get a syntax error. The reason for this order of commands and arguments is that we found the alternatives to be even worse.
Commands consist of arguments separated by whitespace and terminated with newline. Comments begins with # and continues to the end of the line.
Arguments containing whitespace (including newlines) or special characters must be quoted. Different argument parts that stand next to each other with no whitespace between them are concatenated to a single argument.
A quoted part begins with either " or ' and continues until the same character occurs again. All characters except the quoting character are allowed inside a quote (including e.g. newlines). \ has no special function.
In accordance to this foobar, "foo"bar and 'fo'"obar" are different ways of writing the same argument: foobar.
To write the argument "Foo?" you could use e.g. '"Foo?"' and "Viktors'" can be written as '"Viktors'"'"'"' (it is three parts, '"Viktors', "'" and '"' concatenated since they stand next to each other.
The domain command is used by domain administrators to create new mail addresses and binding them to specific users, mailing list and/or external email addresses. There are no public useable commands here unless you are a domain administrator.
maillist is used by domain administrators to create new mailing lists for which they set a mailing list administrator. The list administrator for each list can then use this command to manipulate the list.
user is the command used by users (and sometimes by domain administrators) to modify account preferences. Some options are only available to super users or domain administrators.
The system command lists more general data, you can e.g. list all users whose name matches a certain search criteria. The super user can use this command to e.g shut down the daemon.
Finally, the session command is used for authentication, logging out and re-authentication.