summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2012-12-07 22:34:39 +0100
committermakefu <github@syntax-fehler.de>2012-12-07 22:34:39 +0100
commitad09d521243d9275d2af99b5aa5b67b9f79d3a77 (patch)
treee0d2b03045b62fbda60f9fb59d8e7be12d4a2e43
parentbedf7d79f297e3584757e8ebf3995aafd46daf7a (diff)
write_channel.py rewritten to announce_pubkey
announce_pubkey is a shell-only implementation of the now obsolete write_channel script to announce a hosts public key the only dependency of this script is telnet, haven't seen a system without it for a while now
-rw-r--r--retiolum/bin/announce_pubkey35
-rwxr-xr-xretiolum/scripts/tinc_setup/install.sh2
-rw-r--r--retiolum/scripts/tinc_setup/write_channel.py27
3 files changed, 36 insertions, 28 deletions
diff --git a/retiolum/bin/announce_pubkey b/retiolum/bin/announce_pubkey
new file mode 100644
index 00000000..ce5aed19
--- /dev/null
+++ b/retiolum/bin/announce_pubkey
@@ -0,0 +1,35 @@
+#!/bin/sh
+set -euf
+HOST="${1:-}"
+
+usage (){
+cat <<EOF
+usage: $0 HOSTNAME
+
+also, you are made of stupid
+EOF
+exit 23
+}
+
+[ "x$HOST" = "x" ] && usage
+
+CHANNEL="#krebsco"
+IRCHOST="irc.freenode.net"
+PORT=6667
+RETIOLUM="/etc/tinc/retiolum"
+PUBFILE="$RETIOLUM/hosts/$HOST"
+
+if [ ! -e $PUBFILE ] ;then
+ echo "cannot find $PUBFILE - host $HOST wrong?" ;
+ echo
+ usage
+fi
+
+NICK="${HOST}_$((RANDOM%666))"
+
+( echo "NICK $NICK";
+ echo "USER $NICK $IRCHOST bla : $NICK";
+ echo "JOIN $CHANNEL";
+ sleep 23;
+ sed "s/^\(.*\)/PRIVMSG $CHANNEL : \1/" $PUBFILE;
+ sleep 5; ) | telnet $IRCHOST $PORT
diff --git a/retiolum/scripts/tinc_setup/install.sh b/retiolum/scripts/tinc_setup/install.sh
index a6b50b8a..2e36b83a 100755
--- a/retiolum/scripts/tinc_setup/install.sh
+++ b/retiolum/scripts/tinc_setup/install.sh
@@ -73,7 +73,7 @@ if [ ! -e rsa_key.priv ]
then
echo "creating new keys"
tincd -n $netname -K
- python ${CURR}/write_channel.py $myname || \
+ $MYBIN/announce_pubkey $myname || \
echo "cannot write public key to IRC, you are on your own. Good Luck"
else
echo "key files already exist, skipping"
diff --git a/retiolum/scripts/tinc_setup/write_channel.py b/retiolum/scripts/tinc_setup/write_channel.py
deleted file mode 100644
index 8299fa8d..00000000
--- a/retiolum/scripts/tinc_setup/write_channel.py
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/python
-import random, sys, time, socket
-try:
- myname=sys.argv[1]
-except:
- print("you are made of stupid")
- exit (23)
-
-CHANNEL = '#krebsco'
-HOST='irc.freenode.net'
-FILE="/etc/tinc/retiolum/hosts/"+myname
-PORT=6667
-NICK= myname+"_"+str(random.randint(23,666))
-
-print("Connecting...")
-sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
-sock.connect((HOST,PORT))
-print(NICK)
-sock.send("NICK %s\r\n" % NICK)
-sock.send("USER %s %s bla : %s\r\n" %(NICK,HOST,NICK))
-sock.send("JOIN %s\r\n" % CHANNEL)
-time.sleep(23)
-f = open(FILE,'r')
-a = [ sock.send("PRIVMSG %s : %s" % ( CHANNEL,line)) for line in f]
-time.sleep(5) #because irc is so lazy
-print("closing socket")
-sock.close()