summaryrefslogtreecommitdiffstats
path: root/.graveyard
diff options
context:
space:
mode:
Diffstat (limited to '.graveyard')
-rwxr-xr-x.graveyard/autowifi/autowifi212
-rw-r--r--.graveyard/autowifi/confdir/blacklist2
-rwxr-xr-x.graveyard/autowifi/confdir/cracks/00profile11
-rwxr-xr-x.graveyard/autowifi/confdir/cracks/01open6
-rwxr-xr-x.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up2
-rwxr-xr-x.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac5
-rw-r--r--.graveyard/cholerab-live/README6
-rw-r--r--.graveyard/cholerab-live/chol_net.py82
-rw-r--r--.graveyard/cholerab-live/chol_net.pycbin0 -> 4361 bytes
-rwxr-xr-x.graveyard/cholerab-live/cholerab.py36
-rwxr-xr-x.graveyard/cholerab-live/live.sh88
-rw-r--r--.graveyard/cholerab-live/makefu/README6
-rw-r--r--.graveyard/cholerab-live/makefu/chol_net.py82
-rwxr-xr-x.graveyard/cholerab-live/makefu/cholerab.py36
-rw-r--r--.graveyard/cholerab-live/makefu/view.py112
-rwxr-xr-x.graveyard/cholerab-live/ttycnser.sh27
-rw-r--r--.graveyard/cholerab-live/view.py112
-rw-r--r--.graveyard/temper/.gitignore1
-rw-r--r--.graveyard/temper/99-tempsensor.rules1
-rw-r--r--.graveyard/temper/Makefile20
-rwxr-xr-x.graveyard/temper/collectd-temper.sh9
-rw-r--r--.graveyard/temper/temper.c277
-rw-r--r--.graveyard/temper/temper.h39
23 files changed, 1172 insertions, 0 deletions
diff --git a/.graveyard/autowifi/autowifi b/.graveyard/autowifi/autowifi
new file mode 100755
index 00000000..5bdbde22
--- /dev/null
+++ b/.graveyard/autowifi/autowifi
@@ -0,0 +1,212 @@
+#!/bin/sh -x
+
+confdir=${confdir:-"$(dirname $0)/confdir"}
+interface="wlan0"
+
+exists() { type "$1" >/dev/null 2>/dev/null; }
+
+start_wpa_supplicant(){
+ killall wpa_supplicant
+ sleep 1
+cat>wpa.conf<<EOF
+ctrl_interface=/var/run/wpa_supplicant
+EOF
+ wpa_supplicant -i wlan0 -c wpa.conf -B
+ sleep 4
+}
+
+connect(){
+ #mac ssid encryption key
+ wpa_cli reconfigure
+
+ #INTERFACE PRE CONNECT HOOKS
+ for hook in $(find $confdir/hooks/$interface/pre -type f | sort -u); do
+ $hook $@
+ done
+
+ #PROFILE PRE CONNECT HOOKS
+ for hook in $(find "$confdir/hooks/$2/pre" -type f | sort -u); do
+ $hook $@
+ done
+
+ int=$(wpa_cli add_network | tail -1)
+ wpa_cli set_network $int ssid \"$2\"
+ wpa_cli set_network $int bssid $1
+ #wpa_cli set_network $int ap_scan 1
+ if [ "$3" = "[ESS]" ]; then
+ wpa_cli set_network $int key_mgmt NONE
+ else
+ wpa_cli set_network $int key_mgmt WPA-PSK
+ wpa_cli set_network $int psk \"$4\"
+ fi
+ wpa_cli enable_network $int
+
+ if exists dhcpcd; then
+ dhcpcd -x $interface
+ dhcpcd -w -A $interface
+ elif exists dhclient; then
+ dhclient $interface
+ fi
+
+ if check_gateway && check_internet; then
+ echo yay internet
+ #INTERFACE POST CONNECT HOOKS
+ for hook in $(find $confdir/hooks/$interface/post -type f | sort -u); do
+ $hook $@
+ done
+
+ #PROFILE POST CONNECT HOOKS
+ for hook in $(find "$confdir/hooks/$2/post" -type f | sort -u); do
+ $hook $@
+ done
+
+
+ bandw=$(check_bandwidth)
+ (cat $confdir/wifi_stats | grep -v "|$1|" ; echo "$2|$1|$bandw|$4" ) | sort | uniq > $confdir/wifi_stats2
+ mv $confdir/wifi_stats2 $confdir/wifi_stats
+ return 0
+ fi
+ return 1
+
+}
+print_iwlist_env(){
+ # takes environment:
+ # MAC
+ # FREQ
+ # QUALITY
+ # ENCRYPTION
+ # ESSID
+ for i in MAC FREQ QUALITY ENCRYPTION ESSID;do
+ eval echo ${i}_${count}=\\\"\$"${i}"\\\"
+ done
+}
+
+iwlist_scan(){
+ # usage: iwlist_scan $wifi-itf
+
+ count=0
+ wpa_cli scan >/dev/null
+ sleep 10
+
+ wpa_cli scan_results 2>/dev/null | grep -E "^??:" | sed 's/ / /g' | (while IFS=' ' read MAC FREQ QUALITY ENCRYPTION ESSID
+ do
+ : $((count+=1))
+ print_iwlist_env
+
+ done; echo WIFI_COUNT=$count)
+}
+
+find_count_of_ssid(){
+ c=0
+ for i in `seq 1 $WIFI_COUNT`; do
+ eval SSID=\${ESSID_${i}}
+ if [ "$SSID" = $1 ]; then
+ c+=1
+ echo $i
+ fi
+ done
+ if [ $c -eq 0 ];then
+ exit 1
+ fi
+ exit 0
+}
+
+find_unscanned_networks(){
+ for i in `seq 1 $WIFI_COUNT`; do
+ eval SSID=\${ESSID_${i}}
+ eval MAC=\${MAC_${i}}
+ cat $confdir/wifi_stats 2>/dev/null | (while IFS='|' read SSID MAC BANDW KEY; do
+ if [ "$1" = "$SSID" -a "$2" = "$MAC" ]; then
+ continue
+ fi
+ done; echo $i)
+ done
+ exit 0
+}
+
+connect_to_network_by_ssid(){
+ find_count_of_ssid "$1" | (while read i
+ do
+ loop_over_cracks $i
+ done;exit 1)
+ if [ $? -eq 0 ]; then
+ exit 0
+ fi
+ echo "no network found :("
+ exit 1
+}
+
+connect_with_pw(){
+ find_count_of_ssid "$1" | (while read i
+ do
+ KEY="$2"
+ eval connect \"\${MAC_${i}}\" \"\${ESSID_${i}}\" \${ENCRYPTION_${i}} \"\${KEY}\"
+ if [ $? -eq 0 ]; then
+ exit 0
+ fi
+ done;exit 1)
+}
+
+loop_over_networks(){
+ for i in `seq 1 $WIFI_COUNT`; do
+ loop_over_cracks $i
+ if [ $? -eq 0 ]; then
+ exit 0
+ fi
+ done
+}
+
+loop_over_cracks(){
+ i=$1
+ KEY=''
+ for crack in $(find $confdir/cracks -type f | sort -u); do
+ KEY="$(eval root=$confdir \$crack \"\${ESSID_${i}}\" \"\${MAC_${i}}\" \${FREQ_${i}} \${ENCRYPTION_${i}})"
+ if [ $? -eq 0 ]; then
+ eval connect \"\${MAC_${i}}\" \"\${ESSID_${i}}\" \${ENCRYPTION_${i}} \"\${KEY}\"
+ if [ $? -eq 0 ]; then
+ return 0
+ fi
+ fi
+ done
+ return 1
+}
+
+scan_all(){
+ for i in `seq 1 $WIFI_COUNT`; do
+ loop_over_cracks $i
+ done
+}
+
+scan_unscanned(){
+ find_unscanned_networks | (while read i
+ do
+ loop_over_cracks $i
+ done)
+}
+
+
+check_gateway(){
+ echo ping -c 1 -w 5 $(ip route | grep $interface | awk '/default/{print $3}')
+}
+
+check_internet(){
+ ping -c 1 -w 5 8.8.8.8
+}
+
+check_bandwidth(){
+ echo $(printf "%.16d\n" $(curl ftp://ftp.microsoft.com/Products/mspress/library/ANIMAT.ZIP -w "%{speed_download}" -o /dev/null 2>/dev/null | sed 's/\..*//'))
+}
+
+start_wpa_supplicant
+iwlist_scan > /tmp/$interface.scan
+. /tmp/$interface.scan
+if [ -n "$2" ]; then
+ echo connecting to $1 with pw $2
+ connect_with_pw "$1" "$2"
+elif [ -n "$1" ]; then
+ echo connecting to $1
+ connect_to_network_by_ssid "$1"
+else
+ echo looping network now
+ loop_over_networks
+fi
diff --git a/.graveyard/autowifi/confdir/blacklist b/.graveyard/autowifi/confdir/blacklist
new file mode 100644
index 00000000..f0e5c6a1
--- /dev/null
+++ b/.graveyard/autowifi/confdir/blacklist
@@ -0,0 +1,2 @@
+02:25:9c:41:c6:89
+02:25:9c:41:c4:cc
diff --git a/.graveyard/autowifi/confdir/cracks/00profile b/.graveyard/autowifi/confdir/cracks/00profile
new file mode 100755
index 00000000..c2ad6ec7
--- /dev/null
+++ b/.graveyard/autowifi/confdir/cracks/00profile
@@ -0,0 +1,11 @@
+#!/bin/sh -x
+#ESSID MAC CHANNEL ENCRYPTION WPA WPA2
+# ENV:
+# root (default: /)
+root=${root:-/}
+cat $root/wifi_stats 2>/dev/null | (while IFS='|' read SSID MAC BANDW KEY; do
+ if [ "$1" = "$SSID" -a "$2" = "$MAC" ]; then
+ echo $KEY
+ exit 0
+ fi
+done; exit 1)
diff --git a/.graveyard/autowifi/confdir/cracks/01open b/.graveyard/autowifi/confdir/cracks/01open
new file mode 100755
index 00000000..7bd98e20
--- /dev/null
+++ b/.graveyard/autowifi/confdir/cracks/01open
@@ -0,0 +1,6 @@
+#!/bin/sh -x
+#ESSID MAC CHANNEL ENCRYPTION WPA WPA2
+if [ "$4" = "[ESS]" ]; then
+ exit 0
+fi
+exit 1
diff --git a/.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up b/.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up
new file mode 100755
index 00000000..3fd786e4
--- /dev/null
+++ b/.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up
@@ -0,0 +1,2 @@
+#!/bin/sh
+tincd -n retiolum -kALRM
diff --git a/.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac b/.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac
new file mode 100755
index 00000000..c3e0632f
--- /dev/null
+++ b/.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac
@@ -0,0 +1,5 @@
+#!/bin/sh
+ifconfig wlan0 down
+sleep 1
+macchanger -r wlan0
+ifconfig wlan0 up
diff --git a/.graveyard/cholerab-live/README b/.graveyard/cholerab-live/README
new file mode 100644
index 00000000..b778b98c
--- /dev/null
+++ b/.graveyard/cholerab-live/README
@@ -0,0 +1,6 @@
+
+view.py: contains view classes for cholerab
+cholerab.py: main file
+
+start with :
+python cholerab.py
diff --git a/.graveyard/cholerab-live/chol_net.py b/.graveyard/cholerab-live/chol_net.py
new file mode 100644
index 00000000..ee0f5378
--- /dev/null
+++ b/.graveyard/cholerab-live/chol_net.py
@@ -0,0 +1,82 @@
+from socket import socket, AF_INET,SOCK_DGRAM,IPPROTO_UDP,SOL_SOCKET,SO_REUSEADDR,IP_MULTICAST_TTL,IP_MULTICAST_LOOP,INADDR_ANY,inet_aton,IP_ADD_MEMBERSHIP,IPPROTO_IP
+import struct
+import threading
+import logging
+log = None
+from select import select
+GROUP = '224.110.42.23'
+PORT = 42023
+log = logging.getLogger('CholerabNet')
+class CholerabMulicastNet(threading.Thread):
+ def __init__(self,cholerab,group=GROUP,port=PORT):
+ threading.Thread.__init__(self)
+ self.cholerab=cholerab
+ self.group=group
+ self.port=port
+ self.initSocket()
+ def send_char(self,x,y,char):
+ """ translates given params into network message """
+ self.send_mc("%s %d %d" %(str(ord(char)),x,y))
+ def send_mc(self,arg):
+ """ Sends message via multicast"""
+ try:
+ log.debug("Sending '%s' to %s:%d" % (arg,self.group,self.port))
+ self.ignore_next += 1# we need this to work together correctly with reused sockets
+ self.s.sendto("%s" % arg,0,(self.group,self.port))
+ except Exception ,e:
+ self.ignore_next -=1
+ log.error("IN send_mc:%s"%str(e))
+
+ def initSocket (self,rcv=1):
+ ''' Initializes a Multicast socket '''
+ host = ''
+ log.debug("Setting up Multicast Socket")
+ self.s = socket(AF_INET,SOCK_DGRAM, IPPROTO_UDP)
+ self.s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
+ self.s.setsockopt(IPPROTO_IP, IP_MULTICAST_TTL, 32)
+ self.s.setsockopt(IPPROTO_IP,IP_MULTICAST_LOOP,1) # we do not want our own packets to be replayed
+ if rcv==1:
+ log.debug("Configuring for Read AND Write")
+ self.s.bind((host,PORT))
+ mreq = struct.pack("4sl", inet_aton(GROUP), INADDR_ANY)
+ self.s.setsockopt(IPPROTO_IP,IP_ADD_MEMBERSHIP,mreq)
+ def run(self):
+ self.running = 1
+ self.ignore_next = 0
+ while self.running:
+ # break if we do not want to loop on
+ ready,output,exception = select([self.s],[],[],1) # try every second
+ for r in ready:
+ if r == self.s:
+ log.debug(str(self.ignore_next))
+ (data,addr) = self.s.recvfrom(1024)
+ if not self.ignore_next:
+ log.debug("Received Data from %s, data %s"%(str(addr),str(data)))
+ self.receive_net(addr,data)
+ else:
+ self.ignore_next -= 1
+
+ def send_stupid(self,addr):
+ """ sends YOU ARE MADE OF STUPID to the right host """
+ #TODO implement me
+ pass
+
+ def receive_net(self,addr,data):
+ """ resolves which nick sent the message
+ TODO handle user resolution in mulicast """
+ try:
+ address,port = addr
+ arr = str(data).split()
+ char = arr[0]
+ x = arr[1]
+ y = arr[2]
+ self.cholerab.write_char(int(x),int(y),chr(int(char)))
+ except Exception, e:
+ log.error("Triggered YOU ARE MADE OF STUPID: %s" % str(e))
+ self.send_stupid(addr)
+
+ def stop(self):
+ '''
+ stops the whole treading stuff gracefully
+ '''
+ self.running=0
diff --git a/.graveyard/cholerab-live/chol_net.pyc b/.graveyard/cholerab-live/chol_net.pyc
new file mode 100644
index 00000000..0694ad6d
--- /dev/null
+++ b/.graveyard/cholerab-live/chol_net.pyc
Binary files differ
diff --git a/.graveyard/cholerab-live/cholerab.py b/.graveyard/cholerab-live/cholerab.py
new file mode 100755
index 00000000..eb9e66df
--- /dev/null
+++ b/.graveyard/cholerab-live/cholerab.py
@@ -0,0 +1,36 @@
+#!/usr/bin/python2
+# -*- coding: utf-8 -*-
+import curses,time
+from view import CursesView
+from chol_net import CholerabMulicastNet
+import logging
+logging.basicConfig(filename='here.log',level=logging.DEBUG)
+log = logging.getLogger('main')
+class Cholerab:
+ def __init__(self):
+ self.view = CursesView(cholerab=self)
+ self.transport = CholerabMulicastNet(cholerab=self)
+ def send_char(self,x,y,char):
+ log.info("Sending %s at (%d,%d) to connected peers" %(char,x,y))
+ self.transport.send_char(x,y,char)
+
+ def write_char(self,x,y,char):
+ log.info("Writing %s at (%d,%d) to view" %(char,x,y))
+ self.view.write_char(x,y,char,user=2)
+ def stop(self):
+ self.view.stop()
+ self.transport.stop()
+ def main(self):
+ self.view.start()
+ self.transport.start()
+ self.view.join()
+ #after view dies, kill the transport as well
+ self.transport.stop()
+ self.transport.join()
+def main():
+ log.debug('started main')
+ chol = Cholerab()
+ chol.main()
+
+if __name__ == "__main__":
+ main()
diff --git a/.graveyard/cholerab-live/live.sh b/.graveyard/cholerab-live/live.sh
new file mode 100755
index 00000000..62a2c3cf
--- /dev/null
+++ b/.graveyard/cholerab-live/live.sh
@@ -0,0 +1,88 @@
+#! /bin/sh
+set -euf
+stty cbreak -echo
+
+go() {
+ state=$1
+ wr 7
+ wr " " >&2
+ wr "state=$state" >&2
+ wr 8
+ $1
+}
+
+rd() {
+ dd bs=1 count=1 2>/dev/null
+}
+
+bufrd() {
+ buf="`rd`"
+ bufinfowr
+}
+
+bufrda() {
+ buf="$buf`rd`"
+ bufinfowr
+}
+
+bufinfowr() {
+ wr 7
+ wr " " >&2
+ wr " " >&2
+ case "$buf" in
+ () wr '^[' >&2;;
+ (*) wr "$buf" >&2;;
+ esac
+ wr "`wr "$buf" | xxd -p`" >&2
+ wr 8
+}
+
+wr() {
+ echo -n "$1"
+}
+
+C0="`echo C0 | xxd -r -p`"; DF="`echo DF | xxd -r -p`"
+E0="`echo E0 | xxd -r -p`"; EF="`echo EF | xxd -r -p`"
+F0="`echo F0 | xxd -r -p`"; F7="`echo F7 | xxd -r -p`"
+S() {
+ bufrd
+ case "$buf" in
+ () go ESC;;
+ () wr ' '; go S;;
+ ([$C0-$DF]) go U1;;
+ ([$E0-$EF]) go U2;;
+ ([$F0-$F7]) go U3;;
+ (*) wr "$buf"; go S;;
+ esac
+}
+
+U1() { buf="$buf`rd`"; wr "$buf"; go S; }
+U2() { buf="$buf`rd`"; go U1; }
+U3() { buf="$buf`rd`"; go U2; }
+
+
+ESC() {
+ bufrda
+ case "$buf" in
+ ('[') go ESC_OSQRB;;
+ (*)
+ wr '^['
+ go S
+ ;;
+ esac
+}
+
+ESC_OSQRB() {
+ bufrda
+ case "$buf" in
+ (''|''|''|'') wr "$buf"; go S;;
+ (*)
+ wr '^[['
+ go S
+ ;;
+ esac
+}
+
+
+wr 'c'
+go S
diff --git a/.graveyard/cholerab-live/makefu/README b/.graveyard/cholerab-live/makefu/README
new file mode 100644
index 00000000..b778b98c
--- /dev/null
+++ b/.graveyard/cholerab-live/makefu/README
@@ -0,0 +1,6 @@
+
+view.py: contains view classes for cholerab
+cholerab.py: main file
+
+start with :
+python cholerab.py
diff --git a/.graveyard/cholerab-live/makefu/chol_net.py b/.graveyard/cholerab-live/makefu/chol_net.py
new file mode 100644
index 00000000..ee0f5378
--- /dev/null
+++ b/.graveyard/cholerab-live/makefu/chol_net.py
@@ -0,0 +1,82 @@
+from socket import socket, AF_INET,SOCK_DGRAM,IPPROTO_UDP,SOL_SOCKET,SO_REUSEADDR,IP_MULTICAST_TTL,IP_MULTICAST_LOOP,INADDR_ANY,inet_aton,IP_ADD_MEMBERSHIP,IPPROTO_IP
+import struct
+import threading
+import logging
+log = None
+from select import select
+GROUP = '224.110.42.23'
+PORT = 42023
+log = logging.getLogger('CholerabNet')
+class CholerabMulicastNet(threading.Thread):
+ def __init__(self,cholerab,group=GROUP,port=PORT):
+ threading.Thread.__init__(self)
+ self.cholerab=cholerab
+ self.group=group
+ self.port=port
+ self.initSocket()
+ def send_char(self,x,y,char):
+ """ translates given params into network message """
+ self.send_mc("%s %d %d" %(str(ord(char)),x,y))
+ def send_mc(self,arg):
+ """ Sends message via multicast"""
+ try:
+ log.debug("Sending '%s' to %s:%d" % (arg,self.group,self.port))
+ self.ignore_next += 1# we need this to work together correctly with reused sockets
+ self.s.sendto("%s" % arg,0,(self.group,self.port))
+ except Exception ,e:
+ self.ignore_next -=1
+ log.error("IN send_mc:%s"%str(e))
+
+ def initSocket (self,rcv=1):
+ ''' Initializes a Multicast socket '''
+ host = ''
+ log.debug("Setting up Multicast Socket")
+ self.s = socket(AF_INET,SOCK_DGRAM, IPPROTO_UDP)
+ self.s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
+ self.s.setsockopt(IPPROTO_IP, IP_MULTICAST_TTL, 32)
+ self.s.setsockopt(IPPROTO_IP,IP_MULTICAST_LOOP,1) # we do not want our own packets to be replayed
+ if rcv==1:
+ log.debug("Configuring for Read AND Write")
+ self.s.bind((host,PORT))
+ mreq = struct.pack("4sl", inet_aton(GROUP), INADDR_ANY)
+ self.s.setsockopt(IPPROTO_IP,IP_ADD_MEMBERSHIP,mreq)
+ def run(self):
+ self.running = 1
+ self.ignore_next = 0
+ while self.running:
+ # break if we do not want to loop on
+ ready,output,exception = select([self.s],[],[],1) # try every second
+ for r in ready:
+ if r == self.s:
+ log.debug(str(self.ignore_next))
+ (data,addr) = self.s.recvfrom(1024)
+ if not self.ignore_next:
+ log.debug("Received Data from %s, data %s"%(str(addr),str(data)))
+ self.receive_net(addr,data)
+ else:
+ self.ignore_next -= 1
+
+ def send_stupid(self,addr):
+ """ sends YOU ARE MADE OF STUPID to the right host """
+ #TODO implement me
+ pass
+
+ def receive_net(self,addr,data):
+ """ resolves which nick sent the message
+ TODO handle user resolution in mulicast """
+ try:
+ address,port = addr
+ arr = str(data).split()
+ char = arr[0]
+ x = arr[1]
+ y = arr[2]
+ self.cholerab.write_char(int(x),int(y),chr(int(char)))
+ except Exception, e:
+ log.error("Triggered YOU ARE MADE OF STUPID: %s" % str(e))
+ self.send_stupid(addr)
+
+ def stop(self):
+ '''
+ stops the whole treading stuff gracefully
+ '''
+ self.running=0
diff --git a/.graveyard/cholerab-live/makefu/cholerab.py b/.graveyard/cholerab-live/makefu/cholerab.py
new file mode 100755
index 00000000..eb9e66df
--- /dev/null
+++ b/.graveyard/cholerab-live/makefu/cholerab.py
@@ -0,0 +1,36 @@
+#!/usr/bin/python2
+# -*- coding: utf-8 -*-
+import curses,time
+from view import CursesView
+from chol_net import CholerabMulicastNet
+import logging
+logging.basicConfig(filename='here.log',level=logging.DEBUG)
+log = logging.getLogger('main')
+class Cholerab:
+ def __init__(self):
+ self.view = CursesView(cholerab=self)
+ self.transport = CholerabMulicastNet(cholerab=self)
+ def send_char(self,x,y,char):
+ log.info("Sending %s at (%d,%d) to connected peers" %(char,x,y))
+ self.transport.send_char(x,y,char)
+
+ def write_char(self,x,y,char):
+ log.info("Writing %s at (%d,%d) to view" %(char,x,y))
+ self.view.write_char(x,y,char,user=2)
+ def stop(self):
+ self.view.stop()
+ self.transport.stop()
+ def main(self):
+ self.view.start()
+ self.transport.start()
+ self.view.join()
+ #after view dies, kill the transport as well
+ self.transport.stop()
+ self.transport.join()
+def main():
+ log.debug('started main')
+ chol = Cholerab()
+ chol.main()
+
+if __name__ == "__main__":
+ main()
diff --git a/.graveyard/cholerab-live/makefu/view.py b/.graveyard/cholerab-live/makefu/view.py
new file mode 100644
index 00000000..6a75f655
--- /dev/null
+++ b/.graveyard/cholerab-live/makefu/view.py
@@ -0,0 +1,112 @@
+#!/usr/bin/python2
+
+from curses import *
+import socket
+import threading
+import logging
+log = logging.getLogger('cholerab-curses')
+
+class CursesView(threading.Thread):
+ def addch(self,char):
+ """
+ adds a char at the current cursor position
+ abstraction to the curses win.addch()
+ """
+ try: self.win.addch(char)
+ except: pass
+ self.cholerab.send_char(self.x,self.y,chr(char))
+ def stop(self):
+ #TODO setting back the whole terminal currently does not work correctly, fix me harder
+ self.running = False
+ self.clear()
+ self.win.refresh()
+ nocbreak(); self.scr.keypad(0); echo()
+ #endwin()
+
+ def run(self):
+ """
+ input loop
+
+ TODO add Unicode Input Support
+ """
+ self.running = True
+ def try_move(x,y):
+ if x >= self.width: x = 0;y = y+1
+ if x < 0 : x = self.width-1; y= y-1
+ if y >= self.height : x = x+1;y = 0
+ if y < 0 : x = x-1; y = self.height-1
+ self.win.move(y,x); return x,y
+
+ while self.running:
+ c = self.scr.getch() #get_char(self.scr)
+ #TODO UTF8 here, get_wch not yet implemented
+ log.debug("Pressed : %d" % c)
+ if c == KEY_LEFT : self.x -=1
+ elif c == KEY_RIGHT : self.x +=1
+ elif c == KEY_UP : self.y -=1
+ elif c == KEY_DOWN : self.y +=1
+ elif c == ord('q') : self.stop()
+ elif c == 127 or c == KEY_BACKSPACE:
+ log.info('backspace pressed')
+ self.x -=1;
+ self.x,self.y = try_move(self.x,self.y)
+ self.addch(ord(' '))
+ elif c == ord('\n'):
+ log.info('enter pressed')
+ self.y +=1;
+ self.x,self.y = try_move(self.x,self.y)
+ else :
+ self.addch(c)
+ self.x +=1
+ self.x,self.y = try_move(self.x,self.y)
+ self.refresh()
+
+ def write_char(self,x,y,char,user=1):
+ user = user % 3 + 1
+ self.win.addch(y,x,char,color_pair(user))
+ self.win.move(self.y,self.x)
+ self.refresh()
+ def write_str(self,x,y,string,user=1):
+ self.win.addstr(y,x,string,color_pair(user))
+ self.win.move(self.y,self.x)
+ self.refresh()
+ def refresh(self):
+ self.scr.refresh()
+ self.win.refresh()
+ def clear(self):
+ self.win.clear()
+ pass
+ def write_field(self,ar):
+ """
+ writes the whole field with given 2-dimensional array
+ """
+ self.clear()
+ pass
+
+ def __init__(self,height=24,width=80,cholerab=None,scr=None):
+ # TODO handle sessions somehow
+ if scr:
+ self.scr = scr
+ else:
+ self.scr = initscr()
+ start_color()
+ init_pair(1,COLOR_WHITE,COLOR_BLACK)
+ init_pair(2,COLOR_RED,COLOR_BLACK)
+ init_pair(3,COLOR_GREEN,COLOR_BLACK)
+ init_pair(3,COLOR_CYAN,COLOR_BLACK)
+ threading.Thread.__init__(self)
+ self.cholerab = cholerab
+
+ noecho()
+ cbreak()
+ self.scr.keypad(1)
+ try: curs_set(2)
+ except: pass # go home with your non-standard terminals!
+
+ begin_x = 0;begin_y = 0
+ self.height = height
+ self.width = width
+ self.x = 0 ; self.y = 0
+
+ self.win = newwin(height,width,begin_y,begin_x)
+ self.clear()
diff --git a/.graveyard/cholerab-live/ttycnser.sh b/.graveyard/cholerab-live/ttycnser.sh
new file mode 100755
index 00000000..0972dbbb
--- /dev/null
+++ b/.graveyard/cholerab-live/ttycnser.sh
@@ -0,0 +1,27 @@
+#! /bin/sh
+set -euf
+
+tty="${TMPDIR-/tmp}/ttycnser.$LOGNAME.tty"
+
+case "${mode-server}" in
+ (server)
+ host=0.0.0.0
+ port=8080
+ export mode=client
+ echo "ttycnser @ $host $port" >&2
+ exec tcpserver $host $port "$0"
+ ;;
+ (client)
+ line="`read line && echo "$line"`"
+ echo -n '7>>>> '"$line"'8' > "$tty"
+ ;;
+ (install)
+ # TODO tell the user to do something like
+ # PROMPT_COMMAND="`mode=install ~/p/krebscode/painload/cholerab/ttycnser`"
+ echo "ln -snf '`tty`' '$tty'"
+ ;;
+ (*)
+ echo 'Error 1: You are made of stupid!' >&2
+ exit 23
+ ;;
+esac
diff --git a/.graveyard/cholerab-live/view.py b/.graveyard/cholerab-live/view.py
new file mode 100644
index 00000000..6a75f655
--- /dev/null
+++ b/.graveyard/cholerab-live/view.py
@@ -0,0 +1,112 @@
+#!/usr/bin/python2
+
+from curses import *
+import socket
+import threading
+import logging
+log = logging.getLogger('cholerab-curses')
+
+class CursesView(threading.Thread):
+ def addch(self,char):
+ """
+ adds a char at the current cursor position
+ abstraction to the curses win.addch()
+ """
+ try: self.win.addch(char)
+ except: pass
+ self.cholerab.send_char(self.x,self.y,chr(char))
+ def stop(self):
+ #TODO setting back the whole terminal currently does not work correctly, fix me harder
+ self.running = False
+ self.clear()
+ self.win.refresh()
+ nocbreak(); self.scr.keypad(0); echo()
+ #endwin()
+
+ def run(self):
+ """
+ input loop
+
+ TODO add Unicode Input Support
+ """
+ self.running = True
+ def try_move(x,y):
+ if x >= self.width: x = 0;y = y+1
+ if x < 0 : x = self.width-1; y= y-1
+ if y >= self.height : x = x+1;y = 0
+ if y < 0 : x = x-1; y = self.height-1
+ self.win.move(y,x); return x,y
+
+ while self.running:
+ c = self.scr.getch() #get_char(self.scr)
+ #TODO UTF8 here, get_wch not yet implemented
+ log.debug("Pressed : %d" % c)
+ if c == KEY_LEFT : self.x -=1
+ elif c == KEY_RIGHT : self.x +=1
+ elif c == KEY_UP : self.y -=1
+ elif c == KEY_DOWN : self.y +=1
+ elif c == ord('q') : self.stop()
+ elif c == 127 or c == KEY_BACKSPACE:
+ log.info('backspace pressed')
+ self.x -=1;
+ self.x,self.y = try_move(self.x,self.y)
+ self.addch(ord(' '))
+ elif c == ord('\n'):
+ log.info('enter pressed')
+ self.y +=1;
+ self.x,self.y = try_move(self.x,self.y)
+ else :
+ self.addch(c)
+ self.x +=1
+ self.x,self.y = try_move(self.x,self.y)
+ self.refresh()
+
+ def write_char(self,x,y,char,user=1):
+ user = user % 3 + 1
+ self.win.addch(y,x,char,color_pair(user))
+ self.win.move(self.y,self.x)
+ self.refresh()
+ def write_str(self,x,y,string,user=1):
+ self.win.addstr(y,x,string,color_pair(user))
+ self.win.move(self.y,self.x)
+ self.refresh()
+ def refresh(self):
+ self.scr.refresh()
+ self.win.refresh()
+ def clear(self):
+ self.win.clear()
+ pass
+ def write_field(self,ar):
+ """
+ writes the whole field with given 2-dimensional array
+ """
+ self.clear()
+ pass
+
+ def __init__(self,height=24,width=80,cholerab=None,scr=None):
+ # TODO handle sessions somehow
+ if scr:
+ self.scr = scr
+ else:
+ self.scr = initscr()
+ start_color()
+ init_pair(1,COLOR_WHITE,COLOR_BLACK)
+ init_pair(2,COLOR_RED,COLOR_BLACK)
+ init_pair(3,COLOR_GREEN,COLOR_BLACK)
+ init_pair(3,COLOR_CYAN,COLOR_BLACK)
+ threading.Thread.__init__(self)
+ self.cholerab = cholerab
+
+ noecho()
+ cbreak()
+ self.scr.keypad(1)
+ try: curs_set(2)
+ except: pass # go home with your non-standard terminals!
+
+ begin_x = 0;begin_y = 0
+ self.height = height
+ self.width = width
+ self.x = 0 ; self.y = 0
+
+ self.win = newwin(height,width,begin_y,begin_x)
+ self.clear()
diff --git a/.graveyard/temper/.gitignore b/.graveyard/temper/.gitignore
new file mode 100644
index 00000000..7e50641a
--- /dev/null
+++ b/.graveyard/temper/.gitignore
@@ -0,0 +1 @@
+temper
diff --git a/.graveyard/temper/99-tempsensor.rules b/.graveyard/temper/99-tempsensor.rules
new file mode 100644
index 00000000..441a469e
--- /dev/null
+++ b/.graveyard/temper/99-tempsensor.rules
@@ -0,0 +1 @@
+SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="1130", ATTRS{idProduct}=="660c", MODE="666"
diff --git a/.graveyard/temper/Makefile b/.graveyard/temper/Makefile
new file mode 100644
index 00000000..d18ad710
--- /dev/null
+++ b/.graveyard/temper/Makefile
@@ -0,0 +1,20 @@
+
+all: infest
+infest: temper rules-install
+CFLAGS = -O2 -Wall -DDEBUG
+
+temper: temper.c
+ ${CC} -DUNIT_TEST -o $@ $^ -lusb
+ chmod +s temper
+ #cp -a temper /usr/bin
+clean:
+ rm -f temper *.o
+
+rules-install: /etc/udev/rules.d/99-tempsensor.rules
+/etc/udev/rules.d/99-tempsensor.rules:
+ cp 99-tempsensor.rules /etc/udev/rules.d
+debian-prereq:
+ apt-get install libusb-dev
+uninstall:
+ rm -f /etc/udev/rules.d/99-tempsensor.rules /usr/bin/temper
+
diff --git a/.graveyard/temper/collectd-temper.sh b/.graveyard/temper/collectd-temper.sh
new file mode 100755
index 00000000..f66e9acc
--- /dev/null
+++ b/.graveyard/temper/collectd-temper.sh
@@ -0,0 +1,9 @@
+HOSTNAME="${COLLECTD_HOSTNAME:-localhost}"
+INTERVAL="${COLLECTD_INTERVAL:-30}"
+TEMPERNAME="${TEMPERNAME:-external}"