From 68fc1ab8e4f03cb4c76ab3ffa79403a26008becd Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Fri, 30 Jun 2017 13:25:04 +0200 Subject: geht --- send-to-irc | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 send-to-irc diff --git a/send-to-irc b/send-to-irc new file mode 100755 index 0000000..4241126 --- /dev/null +++ b/send-to-irc @@ -0,0 +1,50 @@ +#!/bin/bash + +set -e + +if [ $# -eq 2 ]; then + user="$(whoami)_$(hostname)" + channel="$1" + message="$2" +elif [ $# -eq 3 ]; then + user="$1" + channel="$2" + message="$3" +else + echo 'Need 2 or 3 arguments: (user) channel message.' + exit 1 +fi + +pid='' + +clean_up() { + rm -rf --one-file-system "${tmp_dir}" + if [ -n "${pid}" ]; then + kill ${pid} + fi +} +tmp_dir="$(mktemp -d)" +trap clean_up EXIT + +mkfifo "${tmp_dir}/input" +mkfifo "${tmp_dir}/output" + +ncat irc.home.eckner.net 6667 < \ + "${tmp_dir}/input" > \ + "${tmp_dir}/output" & +pid=$! + +( + printf '%s\n' 'NICK '"${user}" 'USER '"${user}"' 8 * : '"${user}" + + while read -r s; do + echo "$s" >&2 + if [[ "${s}" = *"MODES"* ]]; then + printf '%s\n' 'JOIN '"${channel}" 'PRIVMSG '"${channel}"' :'"${message}" 'QUIT' + fi + done \ + < "${tmp_dir}/output" +) \ + > "${tmp_dir}/input" + +unset pid -- cgit v1.2.3