You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.6 KiB
59 lines
1.6 KiB
Shrlok
|
|
======
|
|
|
|
Publish stuff on the Web by piping it to a Unix domain socket (WIP).
|
|
|
|
Shrlok listens in the background on a Unix socket for a small header followed by
|
|
data and pushes this data in a directory with some basic treatment. For example,
|
|
text pushed to Shrlok is put into a `pre` tag of an HTML page.
|
|
|
|
|
|
|
|
Usage
|
|
-----
|
|
|
|
See the `share.sh` script to see how data can be sent to the socket from the
|
|
shell.
|
|
|
|
### Packet format
|
|
|
|
The current expected format is described at the top of the `shrlok.py` module,
|
|
but here is the short version:
|
|
|
|
1. A packet length, as ASCII digits for convenience, ended with a null byte;
|
|
2. A JSON header, ended with a null byte;
|
|
3. Data.
|
|
|
|
The packet length counts the JSON header, its null byte and the data length, not
|
|
itself nor its own null byte terminator.
|
|
|
|
The header must contain the key "type" with a supported type value.
|
|
|
|
Example:
|
|
|
|
``` python
|
|
28\0{"type":"txt"}\0hello shrlok!
|
|
```
|
|
|
|
Supported types are:
|
|
|
|
- `txt`: the data will be put in `pre` tags into an HTML page;
|
|
- `raw`: the data will be written without modifications.
|
|
|
|
### Header options
|
|
|
|
| Key | Value | Supported by |
|
|
|-------|---------------------------------------|--------------|
|
|
| name | file name (has precedence over `ext`) | raw |
|
|
| ext | file extension | raw |
|
|
| title | Web page title | txt |
|
|
|
|
|
|
|
|
About
|
|
-----
|
|
|
|
I needed something to push stuff into the public folders of a Web server
|
|
possibly from remote, and this is my own cute over-engineered solution that
|
|
refuses to use TCP. Ask Kadaztrof what the name means because I don't know?
|