scripts

random scripts
git clone git://parazyd.org/scripts.git
Log | Files | Refs

commit 887f0ddd54bfef30dae856e94ead965df308ccf8
parent 37fb7497d2762018f87c74f04ffe258c3fdbafcb
Author: parazyd <parazyd@dyne.org>
Date:   Sat,  7 Apr 2018 11:22:53 +0200

Add updates.

Diffstat:
Mautoup | 2+-
Abitreich-paste | 34++++++++++++++++++++++++++++++++++
Tblck | 0
Acheat | 2++
Ddefine | 5-----
Adict | 17+++++++++++++++++
Mextmon | 12++++++------
Mhex-contrast.py | 10++--------
Airssi | 8++++++++
Mmaclookup | 7+------
Mmacspoof.sh | 2++
Mnet | 8++++++--
Rapk -> notinpath/apk | 0
Rblackholedns -> notinpath/blackholedns | 0
Rgenhtpasswd -> notinpath/genhtpasswd | 0
Rcatfact -> notinpath/obsolete/catfact | 0
Rsupadd -> notinpath/obsolete/supadd | 0
Rrsync_backup.sh -> notinpath/rsync_backup.sh | 0
Dparcimonie.sh | 227-------------------------------------------------------------------------------
Mptpb | 3+++
Dsacc | 0
Msetwall | 6++++--
Aurban | 34++++++++++++++++++++++++++++++++++
Mwave.lua | 6+++++-
Awttr | 2++
25 files changed, 127 insertions(+), 258 deletions(-)

diff --git a/autoup b/autoup @@ -34,7 +34,7 @@ case "$filename" in filename="screenshot${num}.png" goph=I ;; - *.png|*.jpg) + *.png|*.jpg|*.jpeg|.JPG|.JPEG) goph=I ;; *.txt|*.html|*.css|*.sh) diff --git a/bitreich-paste b/bitreich-paste @@ -0,0 +1,34 @@ +#!/bin/sh + +DST="parazyd@bitreich.org" +DSTDIR="/bitreich/gopher/paste" + +if [ -z "$DST" ]; +then + printf "You forgot to set DST in %s. Please do so.\n" \ + "$(basename "$0")" >&2 + exit 1 +fi + +if [ $# -gt 0 ]; +then + file="$@" +else + file= +fi + +cd $HOME/tmp +tmpfile="$(mktemp p-XXXXXXXXXXXXX.txt)" +if [ -z "$file" ]; +then + cat > $tmpfile +else + cat "$file" > $tmpfile +fi + +[ $(stat -c %s $tmpfile) -eq 0 ] && exit 1 + +tar cf - $tmpfile | ssh ${DST} "cd $DSTDIR; tar xf -; chmod g+rw $tmpfile" +name="$(basename $tmpfile)" +echo "gopher://bitreich.org/0/p/$name" | xclip +echo "gopher://bitreich.org/0/p/$name" diff --git a/blck b/blck diff --git a/cheat b/cheat @@ -0,0 +1 @@ +dict+ \ No newline at end of file diff --git a/define b/define @@ -1,5 +0,0 @@ -#!/bin/dash - -[ -n "$TORIFY" ] && proxy="--proxy socks5://127.0.0.1:9050" - -curl -s ${proxy} dict://dict.org/d:${1} | grep -E -v '^[0-9]|\[*\]' | less diff --git a/dict b/dict @@ -0,0 +1,17 @@ +#!/bin/sh + +case "$(basename $0)" in + + cheat) + curl -s http://cheat.sh/$1 + ;; + + dict) + curl -s dict://dict.org/d:$1 + ;; + + wttr) + curl -s http://wttr.in/$1 + ;; + +esac diff --git a/extmon b/extmon @@ -3,13 +3,13 @@ # parazyd - (c) wtfpl 2017 # skreenz - IN="${IN:-DP-3}" -EXT="${EXT:-HDMI-1}" + IN="${IN:-eDP-1}" +EXT="${EXT:-HDMI-2}" setmon() { pos="$1" - xrandr --output LVDS-1 --off + #xrandr --output LVDS-1 --off xrandr --output $IN --auto --primary --output $EXT --auto --${pos} $IN setwall } @@ -19,19 +19,19 @@ case "$1" in right|r) setmon right-of ;; above|a) setmon above ;; dup|d) - xrandr --output LVDS-1 --off + #xrandr --output LVDS-1 --off xrandr --output $EXT --same-as $IN --output $IN --primary feh --no-fehbg --bg-fill "$WALL" ;; tv) - xrandr --output LVDS-1 --off + #xrandr --output LVDS-1 --off xrandr --output $IN --auto --primary --output $EXT --mode 1920x1080 --above $IN xrandr --output $EXT --set "Broadcast RGB" "Full" setwall ;; off|o) xrandr --output $IN --auto --output $EXT --off --output HDMI-1 --off - xrandr --output LVDS-1 --auto + xrandr --output $IN --auto #xrandr --output HDMI1 --off setwall ;; diff --git a/hex-contrast.py b/hex-contrast.py @@ -24,14 +24,8 @@ hexmap = { 'f': '0', } -args = stdin.read().split('\n') - -out = [] -for i in args: +for i in stdin.read().split('\n'): val = '' for j in i: val += hexmap[j.lower()] - out.append(val) - -for i in out: - print(i) + print(val) diff --git a/irssi b/irssi @@ -0,0 +1,8 @@ +#!/bin/sh + +abduco -a irssi || { + gpg --decrypt ~/.irssi/config.gpg > ~/.irssi/config && \ + abduco -c irssi /usr/bin/irssi +} + +rm -f ~/.irssi/config diff --git a/maclookup b/maclookup @@ -1,11 +1,6 @@ #!/bin/sh MACFILE="/usr/share/nmap/nmap-mac-prefixes" - -MACADDR="$@" - -MACADDR="$(printf "%s" "$MACADDR" | tr -d ":" | cut -c1-6)" +MACADDR="$(printf "%s" "$*" | tr -d ":" | cut -c1-6)" grep -i "^$MACADDR" "$MACFILE" - - diff --git a/macspoof.sh b/macspoof.sh @@ -7,10 +7,12 @@ case "$1" in -p) sup net "$2" stop sudo macchanger -A "$2" + sup net "$2" start ;; -r) sup net "$2" stop sudo macchanger -p "$2" + sup net "$2" start ;; *) printf "usage: %s {-p [orig]|-r [random]} netdev\n" "$(basename $0)" diff --git a/net b/net @@ -1,5 +1,9 @@ #!/bin/sh -act=restart -test -n "$2" && act="$2" +case "$2" in + stop|start) act="$2" ;; + restart) act=restart ;; + *) exit 1 ;; +esac + /etc/init.d/net."$1" "$act" diff --git a/apk b/notinpath/apk diff --git a/blackholedns b/notinpath/blackholedns diff --git a/genhtpasswd b/notinpath/genhtpasswd diff --git a/catfact b/notinpath/obsolete/catfact diff --git a/supadd b/notinpath/obsolete/supadd diff --git a/rsync_backup.sh b/notinpath/rsync_backup.sh diff --git a/parcimonie.sh b/parcimonie.sh @@ -1,227 +0,0 @@ -#!/usr/bin/env bash - -# Copyright © 2015 Etienne Perot <etienne at perot dot me> -# This work is free. You can redistribute it and/or modify it under the -# terms of the Do What The Fuck You Want To Public License, Version 2, -# as published by Sam Hocevar. See http://www.wtfpl.net/ for more details. - -if [ -n "$PARCIMONIE_CONF" ]; then - source "$PARCIMONIE_CONF" || exit 'Bad configuration file.' - export PARCIMONIE_CONF='' # Children spawned by this script (if any) should not inherit those values -fi - -parcimonieUser="${PARCIMONIE_USER:-$(whoami)}" -gnupgBinary="${GNUPG_BINARY:-}" -torsocksBinary="${TORSOCKS_BINARY:-torsocks}" -gnupgHomedir="${GNUPG_HOMEDIR:-}" -gnupgKeyserver="${GNUPG_KEYSERVER:-}" -gnupgKeyserverOptions="${GNUPG_KEYSERVER_OPTIONS:-http-proxy=}" -torAddress="${TOR_ADDRESS:-127.0.0.1}" -torPort="${TOR_PORT:-9050}" -minWaitTime="${MIN_WAIT_TIME:-900}" # 15 minutes -targetRefreshTime="${TARGET_REFRESH_TIME:-604800}" # 1 week -computerOnlineFraction="${COMPUTER_ONLINE_FRACTION:-1.0}" # 100% of the time -useRandom="${USE_RANDOM:-false}" -dirmngrPath="${DIRMNGR_PATH-}" -dirmngrClientPath="${DIRMNGR_CLIENT_PATH-}" - -# ----------------------------------------------------------------------------- - -if [ "$(whoami)" != "$parcimonieUser" ]; then - if [ "$parcimonieUser" == '*' ]; then # If user requested the script to run for all users - if [ "$(id -u)" != 0 ]; then - echo 'Error: Must be run as root in order to support PARCIMONIE_USER="*".' - exit 1 - fi - gnupgUsers=() - for user in $(cut -d ':' -f 1 < /etc/passwd); do - if [ -d "$(eval "echo ~$user")/.gnupg" ]; then - gnupgUsers+=("$user") - fi - done - # If we have 0 users, error out - if [ "${#gnupgUsers[@]}" -eq 0 ]; then - echo 'Error: No users found with a ~/.gnupg directory.' - exit 1 - fi - # If we just have one user, just su to it - if [ "${#gnupgUsers[@]}" -eq 1 ]; then - export PARCIMONIE_USER="${gnupgUsers[0]}" - export GNUPG_HOMEDIR="$(eval "echo ~"${gnupgUsers[0]}"")/.gnupg" - exec su -c "$0" "${gnupgUsers[0]}" - fi - # If we have more than one, spawn children processes for each - childrenPids=() - for user in "${gnupgUsers[@]}"; do - PARCIMONIE_USER="$user" GNUPG_HOMEDIR="$(eval "echo ~$user")/.gnupg" su -c "$0" "$user" & - childrenPids+=("$!") - done - for childPid in "${childrenPids[@]}"; do - wait "$childPid" - done - exit 0 - else # If the user requested the script to run for a specific user which is not the current one - exec su -c "$0" "$parcimonieUser" - fi -fi - -# If we get here, we know that we are the right user. - -# Find the gpg binary. -if [ -n "$gnupgBinary" ]; then - if [ ! -x "$gnupgBinary" ]; then - echo "Error: GNUPG_BINARY '$GNUPG_BINARY' does not exist or is not executable." - exit 1 - fi -elif which gpg2 &> /dev/null; then - # Try to find it in $PATH. - gnupgBinary="$(which gpg2)" - echo "Detected gpg2 at '$gnupgBinary'." -elif which gpg &> /dev/null; then - gnupgBinary="$(which gpg)" - echo "Detected gpg at '$gnupgBinary'." -else - echo 'gpg not found. Please make sure you have installed GnuPG.' - echo 'You may manually specify the full path to gpg with GNUPG_BINARY.' - exit 1 -fi - -# Test for dirmngr, used in GnuPG >= 2.1 for keyserver communication. -if [ -n "$dirmngrPath" ]; then - if [ ! -x "$dirmngrPath" ]; then - echo "Error: DIRMNGR_PATH '$DIRMNGR_PATH' does not exist or is not executable." - exit 1 - fi -elif which dirmngr &> /dev/null; then - # Try to find dirmngr in $PATH. - dirmngrPath="$(which dirmngr)" - echo "Detected dirmngr at '$dirmngrPath'; assuming GnuPG >= 2.1." -else - echo 'dirmngr not specified, and not found in $PATH. Assuming GnuPG < 2.1.' -fi - -if [ -n "$dirmngrPath" ]; then - # If we are using dirmngr, we must also have dirmngr-client. - if [ -n "$dirmngrClientPath" ]; then - if [ ! -x "$dirmngrClientPath" ]; then - echo "Error: DIRMNGR_CLIENT_PATH '$DIRMNGR_CLIENT_PATH' does not exist or is not executable." - exit 1 - fi - elif which dirmngr-client &> /dev/null; then - # Try to find it in $PATH. Unlike dirmngr, it is a fatal error if we cannot find it, - # because we need it to handle dirmngr properly. - dirmngrClientPath="$(which dirmngr-client)" - echo "Detected dirmngr-client at '$dirmngrClientPath'." - else - echo "dirmngr-client not found, while dirmngr was found at '$dirmngrPath'." - echo 'Please make sure your installation of GnuPG is complete.' - echo 'You may manually specify the full path to dirmngr-client with DIRMNGR_CLIENT_PATH.' - exit 1 - fi -fi - -gnupgExec=("$gnupgBinary" --batch --with-colons) -if [ -n "$gnupgHomedir" ]; then - gnupgExec+=(--homedir "$gnupgHomedir") -fi -if [ -n "$gnupgKeyserver" ]; then - gnupgExec+=(--keyserver "$gnupgKeyserver") -fi -if [ -n "$gnupgKeyserverOptions" ]; then - gnupgExec+=(--keyserver-options "$gnupgKeyserverOptions") -fi - -# Test for GNU `sed`, or use a `sed` fallback in sedExtRegexp -sedExec=(sed) -if [ "$(echo 'abc' | sed -r 's/abc/def/' 2> /dev/null || true)" == 'def' ]; then - # GNU Linux sed - sedExec+=(-r) -else - # Mac OS X sed - sedExec+=(-E) -fi - -sedExtRegexp() { - "${sedExec[@]}" "$@" -} - -keepDigitsOnly() { - sedExtRegexp -e 's/[^[:digit:]]//g' -e '/^$/d' -} - -getRandom() { - if [ -z "$useRandom" -o "$useRandom" == 'false' ]; then - od -vAn -N4 -tu4 < /dev/urandom | keepDigitsOnly - else - od -vAn -N4 -tu4 < /dev/random | keepDigitsOnly - fi -} - -nontor_gnupg() { - "${gnupgExec[@]}" "$@" - return "$?" -} - -tor_gnupg() { - "$torsocksBinary" --isolate "${gnupgExec[@]}" "$@" -} - -getPublicKeys() { - nontor_gnupg --list-public-keys --with-colons --fixed-list-mode --with-fingerprint --with-fingerprint --with-key-data | - grep -a -A 1 '^pub:' | # only allow fingerprints of public keys (not subkeys) - grep -E '^fpr:+[0-9a-fA-F]{40,}:' | # only allow fingerprints of v4 pgp keys - # (v3 fingerprints consist of 32 hex characters) - sedExtRegexp 's/^fpr:+([0-9a-fA-F]+):+$/\1/' # extract the fingerprint -} - -getNumKeys() { - getPublicKeys | wc -l | keepDigitsOnly -} - -getRandomKey() { - local allPublicKeys fingerprint - allPublicKeys=() - for fingerprint in $(getPublicKeys); do - allPublicKeys+=("$fingerprint") - done - echo "${allPublicKeys[$(expr "$(getRandom)" % "${#allPublicKeys[@]}")]}" -} - -getTimeToWait() { - # The target refresh time is scaled by the fraction of time that the computer is expected to be online. - # expr or bash's $(()) don't support fractional math. Use awk. - local scaledRefreshTime - scaledRefreshTime="$targetRefreshTime" - if [ "$computerOnlineFraction" != '1.0' -a "$computerOnlineFraction" != '1' ]; then - scaledRefreshTime="$(echo "$scaledRefreshTime" "$computerOnlineFraction" | awk 'BEGIN {print sprintf("%.0f", $1 * $2)}')" - fi - # minimum wait time + rand(2 * (refresh time / number of pubkeys)) - # = $minWaitTime + $(getRandom) % (2 * $scaledRefreshTime / $(getNumKeys)) - # But if we have a lot of keys or a very short refresh time (2 * refresh time < number of keys), - # then we can encounter a modulo by zero. In this case, we use the following as fallback: - # minimum wait time + rand(minimum wait time) - # = $minWaitTime + $(getRandom) % $minWaitTime - if [ "$(expr '2' '*' "$scaledRefreshTime")" -le "$(getNumKeys)" ]; then - expr "$minWaitTime" '+' "$(getRandom)" '%' "$minWaitTime" - else - expr "$minWaitTime" '+' "$(getRandom)" '%' '(' '2' '*' "$scaledRefreshTime" '/' "$(getNumKeys)" ')' - fi -} - -if [ "$(getNumKeys)" -eq 0 ]; then - echo 'No GnuPG keys found.' - exit 1 -fi - -if [ "$(echo "$computerOnlineFraction" | awk '{ print ($1 < 0.1 || $1 > 1.0) ? "bad" : "good" }')" == 'bad' ]; then - echo 'COMPUTER_ONLINE_FRACTION must be between 0.1 and 1.0.' >&2 - exit 1 -fi - -while true; do - keyToRefresh="$(getRandomKey)" - timeToSleep="$(getTimeToWait)" - echo "> Sleeping $timeToSleep seconds before refreshing key $keyToRefresh..." - sleep "$timeToSleep" - tor_gnupg --recv-keys "$keyToRefresh" -done diff --git a/ptpb b/ptpb @@ -10,4 +10,7 @@ case "$(basename $0)" in sprunge) curl -F 'sprunge=<-' http://sprunge.us ;; + blck) + curl -F "url=$1" https://blck.cf + ;; esac diff --git a/sacc b/sacc Binary files differ. diff --git a/setwall b/setwall @@ -3,9 +3,11 @@ # simple wallpaper setter WALLPAPER_PATH="$HOME/.config/wallpapers" +f="$1" -if [ $1 ]; then - [ -L "$1" ] || ln -sfv "$1" "$WALLPAPER_PATH/current" +if [ -n "$f" ]; then + [ -f "$(basename $f)" ] && f="$PWD/$f" + [ -L "$f" ] || ln -sfv "$f" "$WALLPAPER_PATH/current" fi feh --no-fehbg --bg-fill "$WALLPAPER_PATH/current" diff --git a/urban b/urban @@ -0,0 +1,34 @@ +#!/bin/sh +# +# Copy me if you can. +# By parazyd +# +# Grab urbandictionary definitions + +api="https://api.urbandictionary.com/v0/define?term=" + +term="$*" +printf "Getting definition for \"%s\"...\n" "$term" +term="$(echo $term | sed 's/ /%20/g')" + +data="$(curl -s "${api}${term}" | jq '.list')" + +for i in $(seq 1 3); do + def="$(echo "$data" | jq '.['$i'].definition')" + [ "$def" = null ] && break + def="$(tput bold)$(tput setaf 4)Definition:$(tput sgr0) $def" + + exa="$(echo "$data" | jq '.['$i'].example')" + exa="$(tput bold)$(tput setaf 4)Example:$(tput sgr0) $exa" + + plu="$(echo "$data" | jq '.['$i'].thumbs_up')" + plu="$(tput bold)$(tput setaf 2)$plu+$(tput sgr0)" + + min="$(echo "$data" | jq '.['$i'].thumbs_down')" + min="$(tput bold)$(tput setaf 1)$min-$(tput sgr0)" + + printf "\n---------------------------------------\n\n" + printf "%s\n%s\n%s | %s\n" "$def" "$exa" "$plu" "$min" | \ + sed -e 's/\\r\\n/\n/g' -e 's/\\"/"/g' + +done diff --git a/wave.lua b/wave.lua @@ -1,4 +1,8 @@ #!/usr/bin/env lua +-- +-- Copy me if you can. +-- by parazyd +-- local clock = os.clock @@ -12,7 +16,7 @@ t = {"*","*","*","*","*"," ","+","+","+"," "} while true do print("") - for j = 1, math.floor(math.sin(wave)*20+20) do + for j = 1, math.floor(math.sin(wave)*50+50) do io.write(" ") end for i = 1, 10 do diff --git a/wttr b/wttr @@ -0,0 +1 @@ +dict+ \ No newline at end of file