Publish stuff on the Web by piping it to a Unix domain socket.
This repository has been archived on 2024-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2022-09-03 20:21:51 +02:00
shrlok fix renaming issue 2022-09-03 20:21:51 +02:00
.gitignore shrlok: add html type 2022-07-10 18:24:59 +02:00
pyproject.toml init 2022-07-04 21:52:48 +02:00
README.md readme: format properly & add details 2022-09-03 20:21:30 +02:00
setup.cfg init 2022-07-04 21:52:48 +02:00
share.sh improoooove 2022-09-03 20:01:59 +02:00

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:

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?