mirror of
https://github.com/sipeed/picoclaw.git
synced 2026-06-12 18:08:54 +00:00
40b7b6ee4b
Add IRC as a new channel for picoclaw, supporting server connections, channel joins, DMs, mention-based group triggers, and IRCv3 typing indicators. Uses ergochat/irc-go for connection management with SASL, NickServ, and automatic reconnection support. Closes #1137
57 lines
1.4 KiB
Bash
Executable File
57 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
# Starts a local Ergo IRC server for testing the IRC channel.
|
|
#
|
|
# Requirements: docker
|
|
# Usage: ./scripts/test-irc.sh
|
|
|
|
set -e
|
|
|
|
CONTAINER_NAME="picoclaw-test-ergo"
|
|
IRC_PORT=6667
|
|
|
|
# Clean up any previous instance
|
|
docker rm -f "$CONTAINER_NAME" >/dev/null 2>&1 || true
|
|
|
|
echo "Starting Ergo IRC server on port $IRC_PORT..."
|
|
docker run -d \
|
|
--name "$CONTAINER_NAME" \
|
|
-p "$IRC_PORT:6667" \
|
|
ghcr.io/ergochat/ergo:stable
|
|
|
|
for i in $(seq 1 10); do
|
|
if nc -z localhost "$IRC_PORT" 2>/dev/null; then
|
|
break
|
|
fi
|
|
if [ "$i" -eq 10 ]; then
|
|
echo "ERROR: Server did not start within 10s"
|
|
exit 1
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
echo ""
|
|
echo "IRC server ready on localhost:$IRC_PORT"
|
|
echo ""
|
|
echo "Add this to your ~/.picoclaw/config.json under \"channels\":"
|
|
echo ""
|
|
echo ' "irc": {'
|
|
echo ' "enabled": true,'
|
|
echo ' "server": "localhost:6667",'
|
|
echo ' "tls": false,'
|
|
echo ' "nick": "picobot",'
|
|
echo ' "channels": ["#test"],'
|
|
echo ' "allow_from": [],'
|
|
echo ' "group_trigger": { "mention_only": true }'
|
|
echo ' }'
|
|
echo ""
|
|
echo "Then run picoclaw:"
|
|
echo " cd packages/picoclaw && go run ./cmd/picoclaw gateway"
|
|
echo ""
|
|
echo "Connect with an IRC client:"
|
|
echo " irssi: /connect localhost $IRC_PORT"
|
|
echo " weechat: /server add test localhost/$IRC_PORT && /connect test"
|
|
echo " Join #test, then: picobot: hello"
|
|
echo ""
|
|
echo "To stop the IRC server:"
|
|
echo " docker rm -f $CONTAINER_NAME"
|