diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Makefile | 9 | ||||
-rw-r--r-- | lib/core | 34 | ||||
-rw-r--r-- | lib/libkrebs.sh | 10 | ||||
-rw-r--r-- | lib/network | 49 | ||||
-rw-r--r-- | lib/punani | 104 |
5 files changed, 19 insertions, 187 deletions
diff --git a/lib/Makefile b/lib/Makefile new file mode 100644 index 00000000..4d33995f --- /dev/null +++ b/lib/Makefile @@ -0,0 +1,9 @@ + + +.PHONY: all install +all: select-target + +install: ../bin/libkrebs.sh + +../bin/libkrebs.sh: libkrebs.sh + ln -vsnf ../lib/$< $@ diff --git a/lib/core b/lib/core deleted file mode 100644 index 6d126142..00000000 --- a/lib/core +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh - -# logging -msg() { printf "$@\n" >&2 ;} -info() { msg "** $@" ;} -error() { msg "!! $@" ;} -exists(){ type "$1" >/dev/null 2>/dev/null; } -is_root(){ - test $(id -u) -eq 0 -} -get_hostname(){ - # finds the current hostname - # if ENV HOSTN is set echo $HOSTN - # We try the following: - # $HOSTN - # $HOSTNAME - # hostname - # uci system.hostname - # /etc/hostname - # if everything fails, it returns 1 and prints 'unknown' - - if [ -n "${HOSTN:-}" ] ; then printf "${HOSTN:-}" - elif [ -n "${HOSTNAME:-}" ] ;then printf "$HOSTNAME" - elif exists hostname ; then printf "$(hostname)" - elif exists uci ; then printf "$(uci get system.@system[0].hostname)" - elif [ -e /etc/hostname ] ;then printf "$(cat /etc/hostname)" - else printf "unknown"; return 1 - fi - return 0 -} - -line_to_dot(){ - while read line; do printf .; done; -} diff --git a/lib/libkrebs.sh b/lib/libkrebs.sh new file mode 100644 index 00000000..d423a053 --- /dev/null +++ b/lib/libkrebs.sh @@ -0,0 +1,10 @@ +#! /bin/sh +esudo() { + if test "${esudo-true}" = true -a `id -u` != 0; then + echo "we're going sudo..." >&2 + export esudo=false + exec sudo "$0" "$@" + exit 23 # go to hell + fi +} + diff --git a/lib/network b/lib/network deleted file mode 100644 index 9d7ea197..00000000 --- a/lib/network +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -#include core - -anytelnet(){ - # find Telnet or similar and executes it at the end - # requires exist - # if env TELNET is set, will be trying to run this - # Tries the following things: - # telnet - # nc - # netcat - # busybox telnet - if [ -e "${TELNET:-does_not_exist}" ]; then - info"Will be using $TELNET as Telnet Client" - elif exists telnet ;then - TELNET="$(command -v telnet)" - elif exists nc ;then - TELNET="$(command -v nc)" - elif exists netcat;then - TELNET="$(command -v netcat)" - elif exists busybox;then - TELNET="$(command -v busybox) telnet" - else - error "Cannot find telnet binary, please install either telnet-client or busybox or netcat or provided TELNET environment.\nbailing out!" - return 1 - fi - $TELNET $@ -} - -send_irc(){ - ## reads from stdin, writes to IRC - ## - ## requires func: exists() anytelnet() - if [ -z "${HOSTN:-}" ]; then - HOSTN="$(get_hostname)" - info "no HOSTN given, using $HOSTN instead" - fi - IRCCHANNEL=${IRCCHANNEL:-"#krebs_incoming"} - IRCSERVER=${IRCSERVER:-"irc.freenode.net"} - IRCPORT=${IRCPORT:-6667} - NICK="${HOSTN}_$(head /dev/urandom | tr -dc "0123456789" | head -c3)" - info "starting irc connect as $NICK" - ( echo "NICK $NICK"; - echo "USER $NICK $IRCSERVER bla : $NICK"; - echo "JOIN $IRCCHANNEL"; - sleep 23; - while read line; do echo "PRIVMSG $IRCCHANNEL :$line";sleep 1;done - sleep 5; ) | anytelnet $IRCSERVER $IRCPORT 2>/dev/null | line_to_dot -} diff --git a/lib/punani b/lib/punani deleted file mode 100644 index beaee27c..00000000 --- a/lib/punani +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/sh -#include core - -## begin punani DB -_punanidb_pacman_= -_punanidb_yum_= -_punanidb_aptget_= - -_punanidb_pacman_git=git -_punanidb_yum_git=git -_punanidb_aptget_git=git-core - -_punanidb_pacman_python2=python2 -_punanidb_yum_python2=python -_punanidb_aptget_python2=python - -_punanidb_pacman_python3=python -_punanidb_aptget_python3=python3 - -_punanidb_pacman_hostname=inetutils -_punanidb_aptget_hostname=hostname - -_punanidb_pacman_hostname=inetutils -_punanidb_aptget_hostname=hostname - -_punanidb_pacman_make=make -_punanidb_yum_make=make -_punanidb_aptget_make=make - -_punanidb_pacman_tinc=tinc -_punanidb_yum_tinc=tinc -_punanidb_aptget_tinc=tinc - -_punanidb_pacman_tor=tor -_punanidb_yum_tor=tor -_punanidb_aptget_tor=tor - -_punanidb_pacman_nano=nano -_punanidb_yum_nano=nano -_punanidb_aptget_nano=nano - -_punanidb_pacman_vim=vim -_punanidb_yum_vim=vim-enhanced -_punanidb_aptget_vim=vim - -## end punani DB - -_punani_resolve_package(){ - : ${PACKER?PACKER is not set,bailing out} - pkg=${1?please provide package name to resolve} - eval printf "%s" \"\${_punanidb_${PACKER}_${pkg}-}\" | grep . -} -_punani_aptget_install(){ apt-get -y install "$@" ;} -_punani_aptget_remove(){ apt-get -y remove "$@" ;} -_punani_aptget_has() { dpkg -s "$1" | grep -q "Status: install";} -_punani_yum_install(){ yum -y install "$@" ;} -_punani_yum_remove(){ yum -y remove "$@" ;} -_punani_yum_has() { rpm -qa --qf "%{NAME}\n"| egrep "^${1}\$" >/dev/null ;} -_punani_pacman_install(){ pacman --noconfirm -S --needed "$@" ;} -_punani_pacman_remove(){ pacman -Rcs "$@" ;} -_punani_pacman_has(){ pacman -Q "$1" >/dev/null;} -_punani_brew_install(){ brew install "$@"; } -_punani_brew_remove(){ brew remove "$@";} -_punani_brew_has(){ error "not implemented"; return 1 ;} - -punani(){ - ACTION="$1"; shift - PKGS="$*" - for p in apt-get pacman yum brew;do - exists "$p" && PACKER=`printf "%s" "$p" | sed 's/-//g'` && break - done - - [ -z "${PACKER:-}" ] && error "Error 2: no known package manager found; no punani for you!" && return 1 - info "using $PACKER for install" - [ -z "$PKGS" ] && error "no PACKAGE specified." && ACTION="usage" - - - for PKG in $PKGS; do - RES="`_punani_resolve_package $PKG`" - test -z "$RES" && error "could not resolve '$PKG'; no punani for you!"&& return 23 - case "$ACTION" in - install) - eval _punani_${PACKER}_has $RES && info "$RES already installed, skipping" && continue - ! is_root && error "punani requires super-user rights for installing" && return 1 - eval _punani_${PACKER}_install $RES || error "cannot install $RES with $PACKER" - ;; - remove) - ! eval _punani_${PACKER}_has $RES && info "$RES not installed, skipping" && continue - ! is_root && error "punani requires super-user rights for removing" && return 1 - eval _punani_${PACKER}_remove $RES || error "cannot install $RES with $PACKER" - ;; - has) - if eval _punani_${PACKER}_has $RES ;then - info "$RES is installed" - else - info "$RES is not installed" - fi - ;; - *) - error "usage: punani (install|remove|has) PACKAGE..." - return 23 - esac - done -} |