www.nico.schottelius.org/software/ceofhack/developer.mdwn

67 lines
2.1 KiB
Markdown

[[!toc levels=2]]
To get into EOF through ceofhack, you should make sure you understand
[[how to use|user]] ceofhack in general. Depeding on your skills and
interests, you may either be interested in
* hacking the core (aka ceofhack, rare developers probably)
* creating user interfaces (ui)
* creating transport protocols (tp)
## API documentation
In general, everything you need should be documented in the
EOF standard document. If it's not, it's probably a bug
(in that case, send a patch).
## UI developers
UIs can either live in their own projects or be a part of
ceofhack. The **first** way is recommended, so your development
does not depend on ceofhack.
## Transport protocol developers
TPs can either live in their own projects or be a part of
ceofhack. The **second** way is recommended, so all available
transport protocols are shared with the ceofhack installation.
### Creating a new transport protocol
You can use the following code as a start:
scheme=phpbb
implementation=shell
cd ceofhack/tp
mkdir -p ${scheme}/${implementation}
echo "echo listening implementation" > ${scheme}/${implementation}/listen
echo "echo send implementation" > ${scheme}/${implementation}/send
chmod 0755 ${scheme}/${implementation}/*
Now you've a dummy "working" transport protocol.
### Enabling a new transport protocol
You can use the following code as a start:
scheme=phpbb
implementation=shell
cd ceofhack/tp
# Enable protocol in general
mkdir -p "$HOME/.ceof/tp/available/${scheme}"
cp "${scheme}/${implementation}/listen" "$HOME/.ceof/tp/available/${scheme}"
cp "${scheme}/${implementation}/send" "$HOME/.ceof/tp/available/${scheme}"
# Enable listener for protocol
address="describe-particular-address"
mkdir -p "$HOME/.ceof/tp/listen/${scheme}-${address}"
echo "${scheme}${address}" > "$HOME/.ceof/tp/listen/${scheme}-${address}/url"
### Submitting a transport protocol for inclusion into the mainline
* Create a branch ${scheme}-${implementation} on your side
* Submit a pull request (via ML, IRC, github, whatever)
[[!tag unix]]