summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--.graveyard/27c3_ticket_grabber/mechanize_tickets.py (renamed from sandbox/27c3_ticket_grabber/mechanize_tickets.py)0
-rw-r--r--.graveyard/DNA/README.md (renamed from sandbox/DNA/README.md)0
-rw-r--r--.graveyard/DNA/linux/LICENSE (renamed from sandbox/DNA/linux/LICENSE)0
-rw-r--r--.graveyard/DNA/linux/Makefile (renamed from sandbox/DNA/linux/Makefile)0
-rw-r--r--.graveyard/DNA/linux/README.md (renamed from sandbox/DNA/linux/README.md)0
-rw-r--r--.graveyard/DNA/linux/TODO (renamed from sandbox/DNA/linux/TODO)0
-rw-r--r--.graveyard/DNA/linux/krebs.c (renamed from sandbox/DNA/linux/krebs.c)0
-rw-r--r--.graveyard/README.md (renamed from sandbox/README.md)0
-rw-r--r--.graveyard/cobra/README.md (renamed from sandbox/cobra/README.md)0
-rw-r--r--.graveyard/cobra/hello/index.sh (renamed from sandbox/cobra/hello/index.sh)0
-rwxr-xr-x.graveyard/cobra/index.sh (renamed from sandbox/cobra/index.sh)0
-rw-r--r--.graveyard/hyper/README.md (renamed from sandbox/hyper/README.md)0
-rwxr-xr-x.graveyard/hyper/influx/http/index.js (renamed from sandbox/hyper/influx/http/index.js)0
-rw-r--r--.graveyard/hyper/process/Makefile (renamed from sandbox/hyper/process/Makefile)0
-rw-r--r--.graveyard/hyper/process/main.go (renamed from sandbox/hyper/process/main.go)0
-rwxr-xr-x.graveyard/hyper/process/spawn (renamed from sandbox/hyper/process/spawn)0
-rw-r--r--.graveyard/hyper/process/src/hyper/process/Makefile (renamed from sandbox/hyper/process/src/hyper/process/Makefile)0
-rw-r--r--.graveyard/hyper/process/src/hyper/process/process.go (renamed from sandbox/hyper/process/src/hyper/process/process.go)0
-rw-r--r--.graveyard/hyper/process/test/bc.json (renamed from sandbox/hyper/process/test/bc.json)0
-rw-r--r--.graveyard/hyper/sink/index.js (renamed from sandbox/hyper/sink/index.js)0
-rwxr-xr-x.graveyard/json/sh/json.sh (renamed from sandbox/json/sh/json.sh)0
-rw-r--r--.graveyard/json/sh/test.json (renamed from sandbox/json/sh/test.json)0
-rwxr-xr-x.graveyard/meta/bin/update (renamed from sandbox/meta/bin/update)0
-rwxr-xr-x.graveyard/meta/install (renamed from sandbox/meta/install)0
-rw-r--r--.graveyard/punani/Makefile (renamed from punani/Makefile)0
-rw-r--r--.graveyard/punani/README.md (renamed from punani/README.md)0
-rwxr-xr-x.graveyard/punani/autostart/punani-debian (renamed from punani/autostart/punani-debian)0
-rwxr-xr-x.graveyard/punani/bin/punani (renamed from punani/bin/punani)0
-rwxr-xr-x.graveyard/punani/bot/__init__.py (renamed from punani/bot/__init__.py)0
-rw-r--r--.graveyard/punani/db/punani (renamed from punani/db/punani)0
-rw-r--r--.graveyard/punani/doc/releases (renamed from punani/doc/releases)0
-rwxr-xr-x.graveyard/punani/host/dist/arch/getsize (renamed from punani/host/dist/arch/getsize)0
-rwxr-xr-x.graveyard/punani/index.py (renamed from punani/index.py)0
-rw-r--r--.graveyard/roboctl/index.js (renamed from sandbox/roboctl/index.js)0
-rw-r--r--.graveyard/roboctl/lib/irc.js (renamed from sandbox/roboctl/lib/irc.js)0
-rw-r--r--.graveyard/shell/etc/ipt/ipv4-shield-1.rules (renamed from shell/etc/ipt/ipv4-shield-1.rules)0
-rwxr-xr-x.graveyard/tinc_multicast/retiolum (renamed from sandbox/tinc_multicast/retiolum)0
-rwxr-xr-x.graveyard/tinc_multicast/retiolum.py (renamed from sandbox/tinc_multicast/retiolum.py)0
-rw-r--r--.graveyard/zoneminder/Makefile (renamed from sandbox/zoneminder/Makefile)0
-rw-r--r--.graveyard/zoneminder/zmdc.pl-LD_PRELOAD.patch (renamed from sandbox/zoneminder/zmdc.pl-LD_PRELOAD.patch)0
-rw-r--r--.graveyard/zoneminder/zoneminder.conf (renamed from sandbox/zoneminder/zoneminder.conf)0
-rw-r--r--.travis.yml10
-rw-r--r--cholerab/tahoe/brick_installation34
-rw-r--r--cholerab/thesauron4
-rwxr-xr-xext/ovh/soapi/zoneExport2
-rwxr-xr-xext/ovh/soapi/zoneImport2
-rwxr-xr-xgold/mtgox/mtgox.ticker2
-rwxr-xr-xretiolum/scripts/tinc_setup/new_install.sh492
-rwxr-xr-xservices/bin/services2
-rw-r--r--ship/README1
-rwxr-xr-xship/bin/punani4
-rwxr-xr-xship/build93
-rwxr-xr-xship/deploy10
-rw-r--r--ship/develop5
-rw-r--r--ship/lib/core34
-rw-r--r--ship/lib/network49
-rw-r--r--ship/lib/punani104
-rw-r--r--ship/out/.placeholder0
-rw-r--r--util/archlive/archlive.tarbin0 -> 58785 bytes
-rw-r--r--util/archlive/readme7
-rwxr-xr-xutil/bin/make-realwallpaper180
-rwxr-xr-xutil/bin/mobile.vvs.de167
-rwxr-xr-xutil/bin/vvs.de61
-rwxr-xr-xutil/t/mobile.vvs.de/smoke-test5
-rwxr-xr-xutil/t/vvs.de/smoke-test11
-rw-r--r--webchat/Makefile8
-rw-r--r--webchat/hello_web.js83
-rw-r--r--webchat/krebs-img.js6
-rw-r--r--webchat/package.json14
-rw-r--r--webchat/public/client.js44
-rw-r--r--webchat/public/jquery-2.0.3.min.js6
-rw-r--r--webchat/public/reset.css55
-rw-r--r--webchat/public/sockjs-0.3.min.js27
74 files changed, 1230 insertions, 293 deletions
diff --git a/.gitignore b/.gitignore
index b2ebdc11..4a3cb30c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,4 @@ a.out
/ovh/soapi/SOAPpy
/Reaktor/IRC/irclib.py
/Reaktor/public_commands/*
+/ship/out
diff --git a/sandbox/27c3_ticket_grabber/mechanize_tickets.py b/.graveyard/27c3_ticket_grabber/mechanize_tickets.py
index 1f12a996..1f12a996 100644
--- a/sandbox/27c3_ticket_grabber/mechanize_tickets.py
+++ b/.graveyard/27c3_ticket_grabber/mechanize_tickets.py
diff --git a/sandbox/DNA/README.md b/.graveyard/DNA/README.md
index 9de84746..9de84746 100644
--- a/sandbox/DNA/README.md
+++ b/.graveyard/DNA/README.md
diff --git a/sandbox/DNA/linux/LICENSE b/.graveyard/DNA/linux/LICENSE
index 94a9ed02..94a9ed02 100644
--- a/sandbox/DNA/linux/LICENSE
+++ b/.graveyard/DNA/linux/LICENSE
diff --git a/sandbox/DNA/linux/Makefile b/.graveyard/DNA/linux/Makefile
index 2ed4c9fb..2ed4c9fb 100644
--- a/sandbox/DNA/linux/Makefile
+++ b/.graveyard/DNA/linux/Makefile
diff --git a/sandbox/DNA/linux/README.md b/.graveyard/DNA/linux/README.md
index 0b6885e2..0b6885e2 100644
--- a/sandbox/DNA/linux/README.md
+++ b/.graveyard/DNA/linux/README.md
diff --git a/sandbox/DNA/linux/TODO b/.graveyard/DNA/linux/TODO
index fd0d927f..fd0d927f 100644
--- a/sandbox/DNA/linux/TODO
+++ b/.graveyard/DNA/linux/TODO
diff --git a/sandbox/DNA/linux/krebs.c b/.graveyard/DNA/linux/krebs.c
index df319c63..df319c63 100644
--- a/sandbox/DNA/linux/krebs.c
+++ b/.graveyard/DNA/linux/krebs.c
diff --git a/sandbox/README.md b/.graveyard/README.md
index fbf92cd9..fbf92cd9 100644
--- a/sandbox/README.md
+++ b/.graveyard/README.md
diff --git a/sandbox/cobra/README.md b/.graveyard/cobra/README.md
index f9bb8026..f9bb8026 100644
--- a/sandbox/cobra/README.md
+++ b/.graveyard/cobra/README.md
diff --git a/sandbox/cobra/hello/index.sh b/.graveyard/cobra/hello/index.sh
index df2dea7c..df2dea7c 100644
--- a/sandbox/cobra/hello/index.sh
+++ b/.graveyard/cobra/hello/index.sh
diff --git a/sandbox/cobra/index.sh b/.graveyard/cobra/index.sh
index 1118a823..1118a823 100755
--- a/sandbox/cobra/index.sh
+++ b/.graveyard/cobra/index.sh
diff --git a/sandbox/hyper/README.md b/.graveyard/hyper/README.md
index d8fe9d67..d8fe9d67 100644
--- a/sandbox/hyper/README.md
+++ b/.graveyard/hyper/README.md
diff --git a/sandbox/hyper/influx/http/index.js b/.graveyard/hyper/influx/http/index.js
index 346dde3b..346dde3b 100755
--- a/sandbox/hyper/influx/http/index.js
+++ b/.graveyard/hyper/influx/http/index.js
diff --git a/sandbox/hyper/process/Makefile b/.graveyard/hyper/process/Makefile
index bbc1c2fb..bbc1c2fb 100644
--- a/sandbox/hyper/process/Makefile
+++ b/.graveyard/hyper/process/Makefile
diff --git a/sandbox/hyper/process/main.go b/.graveyard/hyper/process/main.go
index 214dade9..214dade9 100644
--- a/sandbox/hyper/process/main.go
+++ b/.graveyard/hyper/process/main.go
diff --git a/sandbox/hyper/process/spawn b/.graveyard/hyper/process/spawn
index 65e94d86..65e94d86 100755
--- a/sandbox/hyper/process/spawn
+++ b/.graveyard/hyper/process/spawn
diff --git a/sandbox/hyper/process/src/hyper/process/Makefile b/.graveyard/hyper/process/src/hyper/process/Makefile
index 7ecda716..7ecda716 100644
--- a/sandbox/hyper/process/src/hyper/process/Makefile
+++ b/.graveyard/hyper/process/src/hyper/process/Makefile
diff --git a/sandbox/hyper/process/src/hyper/process/process.go b/.graveyard/hyper/process/src/hyper/process/process.go
index 18cf55fb..18cf55fb 100644
--- a/sandbox/hyper/process/src/hyper/process/process.go
+++ b/.graveyard/hyper/process/src/hyper/process/process.go
diff --git a/sandbox/hyper/process/test/bc.json b/.graveyard/hyper/process/test/bc.json
index 5b3b0721..5b3b0721 100644
--- a/sandbox/hyper/process/test/bc.json
+++ b/.graveyard/hyper/process/test/bc.json
diff --git a/sandbox/hyper/sink/index.js b/.graveyard/hyper/sink/index.js
index b556b88d..b556b88d 100644
--- a/sandbox/hyper/sink/index.js
+++ b/.graveyard/hyper/sink/index.js
diff --git a/sandbox/json/sh/json.sh b/.graveyard/json/sh/json.sh
index 79f8529a..79f8529a 100755
--- a/sandbox/json/sh/json.sh
+++ b/.graveyard/json/sh/json.sh
diff --git a/sandbox/json/sh/test.json b/.graveyard/json/sh/test.json
index 9b4c6312..9b4c6312 100644
--- a/sandbox/json/sh/test.json
+++ b/.graveyard/json/sh/test.json
diff --git a/sandbox/meta/bin/update b/.graveyard/meta/bin/update
index 9b2289ad..9b2289ad 100755
--- a/sandbox/meta/bin/update
+++ b/.graveyard/meta/bin/update
diff --git a/sandbox/meta/install b/.graveyard/meta/install
index 07096b34..07096b34 100755
--- a/sandbox/meta/install
+++ b/.graveyard/meta/install
diff --git a/punani/Makefile b/.graveyard/punani/Makefile
index f444b1fc..f444b1fc 100644
--- a/punani/Makefile
+++ b/.graveyard/punani/Makefile
diff --git a/punani/README.md b/.graveyard/punani/README.md
index 1b70eab7..1b70eab7 100644
--- a/punani/README.md
+++ b/.graveyard/punani/README.md
diff --git a/punani/autostart/punani-debian b/.graveyard/punani/autostart/punani-debian
index 53db0336..53db0336 100755
--- a/punani/autostart/punani-debian
+++ b/.graveyard/punani/autostart/punani-debian
diff --git a/punani/bin/punani b/.graveyard/punani/bin/punani
index 23ba5e00..23ba5e00 100755
--- a/punani/bin/punani
+++ b/.graveyard/punani/bin/punani
diff --git a/punani/bot/__init__.py b/.graveyard/punani/bot/__init__.py
index 4944bba0..4944bba0 100755
--- a/punani/bot/__init__.py
+++ b/.graveyard/punani/bot/__init__.py
diff --git a/punani/db/punani b/.graveyard/punani/db/punani
index e5d1f383..e5d1f383 100644
--- a/punani/db/punani
+++ b/.graveyard/punani/db/punani
diff --git a/punani/doc/releases b/.graveyard/punani/doc/releases
index 98c4ea82..98c4ea82 100644
--- a/punani/doc/releases
+++ b/.graveyard/punani/doc/releases
diff --git a/punani/host/dist/arch/getsize b/.graveyard/punani/host/dist/arch/getsize
index a2ef8f95..a2ef8f95 100755
--- a/punani/host/dist/arch/getsize
+++ b/.graveyard/punani/host/dist/arch/getsize
diff --git a/punani/index.py b/.graveyard/punani/index.py
index ff483d37..ff483d37 100755
--- a/punani/index.py
+++ b/.graveyard/punani/index.py
diff --git a/sandbox/roboctl/index.js b/.graveyard/roboctl/index.js
index ac92c969..ac92c969 100644
--- a/sandbox/roboctl/index.js
+++ b/.graveyard/roboctl/index.js
diff --git a/sandbox/roboctl/lib/irc.js b/.graveyard/roboctl/lib/irc.js
index 5f904a74..5f904a74 100644
--- a/sandbox/roboctl/lib/irc.js
+++ b/.graveyard/roboctl/lib/irc.js
diff --git a/shell/etc/ipt/ipv4-shield-1.rules b/.graveyard/shell/etc/ipt/ipv4-shield-1.rules
index c879311d..c879311d 100644
--- a/shell/etc/ipt/ipv4-shield-1.rules
+++ b/.graveyard/shell/etc/ipt/ipv4-shield-1.rules
diff --git a/sandbox/tinc_multicast/retiolum b/.graveyard/tinc_multicast/retiolum
index 1d6b775f..1d6b775f 100755
--- a/sandbox/tinc_multicast/retiolum
+++ b/.graveyard/tinc_multicast/retiolum
diff --git a/sandbox/tinc_multicast/retiolum.py b/.graveyard/tinc_multicast/retiolum.py
index 8cf57471..8cf57471 100755
--- a/sandbox/tinc_multicast/retiolum.py
+++ b/.graveyard/tinc_multicast/retiolum.py
diff --git a/sandbox/zoneminder/Makefile b/.graveyard/zoneminder/Makefile
index 27302715..27302715 100644
--- a/sandbox/zoneminder/Makefile
+++ b/.graveyard/zoneminder/Makefile
diff --git a/sandbox/zoneminder/zmdc.pl-LD_PRELOAD.patch b/.graveyard/zoneminder/zmdc.pl-LD_PRELOAD.patch
index b00fc673..b00fc673 100644
--- a/sandbox/zoneminder/zmdc.pl-LD_PRELOAD.patch
+++ b/.graveyard/zoneminder/zmdc.pl-LD_PRELOAD.patch
diff --git a/sandbox/zoneminder/zoneminder.conf b/.graveyard/zoneminder/zoneminder.conf
index 1eec6fd9..1eec6fd9 100644
--- a/sandbox/zoneminder/zoneminder.conf
+++ b/.graveyard/zoneminder/zoneminder.conf
diff --git a/.travis.yml b/.travis.yml
index e62f843f..12f6de4d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,11 +1,15 @@
language: c
notifications:
- irc: "chat.freenode.net#krebs_incoming"
-
-script: "! ( make -C util test | grep -q '^not ok' )"
+ irc: "chat.freenode.net#krebs_incoming"
+ on_success: change
+ on_failure: always
+ template:
+ - "painload/%{branch} %{commit} %{author}: %{message} %{build_url}"
+script: "! ( make -C util test | grep '^not ok' )"
before_install:
- sudo apt-get install bc -qq
- sudo apt-get install python -qq
+ - sudo apt-get install w3m -qq
branches:
only:
- master
diff --git a/cholerab/tahoe/brick_installation b/cholerab/tahoe/brick_installation
index b319393b..c8a10cd0 100644
--- a/cholerab/tahoe/brick_installation
+++ b/cholerab/tahoe/brick_installation
@@ -1,18 +1,44 @@
-#?/bin/sh
-# Tahoe installation
+#? /bin/sh
+
+## Tahoe Brick Installation (Arch Linux)
pacman -S python2 python2-pip net-tools
pip2 install pyasn1 zfec pycrypto zbase32 pycryptopp twisted
pip2 install allmydata-tahoe
-# tahoe configuration
+## Tahoe Brick Installation (Arch Linux / Expert Mode^_^)
+# if the above breaks for some reason, but you basically know what you're
+# doing, then you could try something like this:
+pip2 uninstall `pip2 list | awk '{print$1}'`
+yaourt -S --asdeps --noconfirm net-tools python2 python2-zope-interface \
+ twisted python2-pyasn1 python2-crypto pycryptopp nevow python2-foolscap \
+ python2-simplejson zfec python2-pyopenssl pyutil python2-argparse zbase32 \
+ python2-mock python2-setuptools
+yaourt -S --noconfirm tahoe-lafs
+
+## Tahoe Brick Configuration
mkdir /opt/tahoe
tahoe create-node /opt/tahoe
useradd tahoe -d /opt/tahoe
+chown -R tahoe: /opt/tahoe
+
# change nick name
+(echo -n "nick name [$HOSTNAME]: " &&
+ read nn &&
+ sed -i "s/^nickname =.*/nickname = ${nn:-$HOSTNAME}/" /opt/tahoe/tahoe.cfg)
+
# replace introducer.furl = None with the one from pigstarter/tahoe/introducer.furl
sed -i "s#^introducer\.furl.*#introducer.furl = $(curl pigstarter/tahoe/introducer.furl)#" /opt/tahoe/tahoe.cfg
+
# you also might want to change shares.needed to 2 , shares.happy to 3 and shares.total to 6
-#
+sed -i 's/#shares\.needed = 3/shares.needed = 2/' /opt/tahoe/tahoe.cfg
+sed -i 's/#shares\.happy = 7/shares.happy = 3/' /opt/tahoe/tahoe.cfg
+sed -i 's/#shares\.total = 10/shares.happy = 6/' /opt/tahoe/tahoe.cfg
+
# optionally symlink /opt/tahoe/storage to somewhere with a lot of storage
cp tahoe.service /usr/lib/systemd/system/tahoe.service
+
systemctl enable tahoe.service
+systemctl start tahoe.service
+
+## Firewall Configuration
+# open port $(cat /opt/tahoe/client.port) to allow inbound connections
diff --git a/cholerab/thesauron b/cholerab/thesauron
index e9493fb5..36bea15c 100644
--- a/cholerab/thesauron
+++ b/cholerab/thesauron
@@ -21,6 +21,10 @@ krebs
- krebs ist ein soziales Experiment, eine Organisation, das zweit aelteste
Softwareprojekt im Shack und viel verteilte infrastruktur.
+KRI abbr. (pronounciation: [en] cry)
+[en]
+- Short for Krebs Request for Implementation.
+ Derived from Scheme Requests for Implementation (SRFI).
litterate programming n.
[en]
diff --git a/ext/ovh/soapi/zoneExport b/ext/ovh/soapi/zoneExport
index 8471f69c..3f6bdac7 100755
--- a/ext/ovh/soapi/zoneExport
+++ b/ext/ovh/soapi/zoneExport
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#! /usr/bin/python2
from os import environ
from os.path import dirname, realpath
diff --git a/ext/ovh/soapi/zoneImport b/ext/ovh/soapi/zoneImport
index 531fb8a1..c28710d6 100755
--- a/ext/ovh/soapi/zoneImport
+++ b/ext/ovh/soapi/zoneImport
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#! /usr/bin/python2
from os import environ
from os.path import dirname, realpath
diff --git a/gold/mtgox/mtgox.ticker b/gold/mtgox/mtgox.ticker
index 32ee53bf..208d2764 100755
--- a/gold/mtgox/mtgox.ticker
+++ b/gold/mtgox/mtgox.ticker
@@ -19,7 +19,7 @@ fi
# 2012-11-17 tv /krebs/gold/mtgox/mtgox.ticker
ticker() {
- curl -ksS https://mtgox.com/code/data/ticker.php?Currency=$Currency
+ curl -ksS https://data.mtgox.com/code/data/ticker.php?Currency=$Currency
}
# 2012-11-17 tv ~mw*@iiso:Espresso-phonegap/package/bin/json-print
print() {
diff --git a/retiolum/scripts/tinc_setup/new_install.sh b/retiolum/scripts/tinc_setup/new_install.sh
index 76ed9e70..226e7c1b 100755
--- a/retiolum/scripts/tinc_setup/new_install.sh
+++ b/retiolum/scripts/tinc_setup/new_install.sh
@@ -1,281 +1,193 @@
#!/bin/sh
+main(){
-#get sudo
-if test "${nosudo-false}" != true -a `id -u` != 0; then
- echo "we're going sudo..." >&2
- exec sudo -E "$0" "$@"
- exit 23 # go to hell
-fi
-set -euf
-#
-SUBNET4=${SUBNET4:-10.243}
-SUBNET6=${SUBNET6:-42}
-TEMPDIR=${TEMPDIR:-auto}
-TINCDIR=${TINCDIR:-auto}
-exists() { type "$1" >/dev/null 2>/dev/null; }
-
-if exists hostname ;then SYSHOSTN=${HOSTNAME:-$(hostname)}
-elif exists uci ;then SYSHOSTN=$(uci get system.@system[0].hostname)
-elif [ -e /etc/hostname ] ;then SYSHOSTN=$(cat /etc/hostname)
-else SYSHOSTN="unknown"
-fi
-
-#overwrite `found` hostname
-HOSTN=${HOSTN:-$SYSHOSTN}
-NETNAME=${NETNAME:-retiolum}
-MASK4=${MASK4:-16}
-MASK6=${MASK6:-16}
-RMASK=${RMASK:-255.255.0.0}
-URL=${URL:-http://euer.krebsco.de/retiolum/hosts.tar.gz}
-SURL=${SURL:-http://euer.krebsco.de/retiolum/supernodes.tar.gz}
-
-IRCCHANNEL=${IRCCHANNEL:-"#krebs_incoming"}
-IRCSERVER=${IRCSERVER:-"irc.freenode.net"}
-IRCPORT=${IRCPORT:-6667}
-
-OS=${OS:-0}
-TELNET=${TELNET:-}
-
-IP4=${IP4:-0}
-IP6=${IP6:-0}
-
-RAND4=1
-RAND6=1
+ #get sudo
+ if test "${nosudo-false}" != true -a `id -u` != 0; then
+ echo "we're going sudo..." >&2
+ exec sudo -E "$0" "$@"
+ exit 23 # go to hell
+ fi
+ set -euf
+ #
+ SUBNET4=${SUBNET4:-10.243}
+ SUBNET6=${SUBNET6:-42}
+ TEMPDIR=${TEMPDIR:-auto}
+ TINCDIR=${TINCDIR:-auto}
+ exists() { type "$1" >/dev/null 2>/dev/null; }
+
+ if exists hostname ;then SYSHOSTN=${HOSTNAME:-$(hostname)}
+ elif exists uci ;then SYSHOSTN=$(uci get system.@system[0].hostname)
+ elif [