#! /bin/zsh # # this file: # http://user.it.uu.se/~embe8573/conf/.zsh/web # https://dataswamp.org/~incal/conf/.zsh/web dupl-links () { local page=${1:-~/public_html/index.html} grep --color=never -o -P "" $page | grep -v "#" | sort | uniq -D | uniq } broken-links () { local url=$1 local log_whole=bl-whole.log local log_errs=bl-errs.log wget --spider -r -nd -nv -o $log_whole $url grep --color=never -B1 "broken link!" $log_whole > $log_errs rm $log_whole } validate-ebc () { local hp_path=~/public_html echo "CSS check..." validate-html-and-css $hp_path/**/*.css echo "CSS check...done" echo -n "HTML check..." local h for h in $hp_path/**/*.html; do validate-html-and-css $h broken-links $h done echo "done" } alias ebc=validate-ebc alias validate=validate-ebc alias verify-ebc=validate-ebc validate-html-and-css () { local -a files files=($@) local ext for f in $files; do ext=${f:e} case $ext in (htm|html) tidy -q -errors $f [[ $? == 1 ]] && echo "in file $f\n" ;; (css) echo "\n$f:" csstidy $f --compress_colors=false --silent ;; esac done } prefix-len () { local user_hosts=$1 local hosts=$(( $user_hosts + 2 )) # network and broadcast local len=$(( 32 - ceil(log($hosts)/log(2)) )) printf "%g\n" $len } test-speed () { local url=http://speedtest.dal01.softlayer.com/downloads/test100.zip local user=$(whoami) local host=$(hostname) local start=$(date -Is) wget -O /dev/null $url 2> /dev/null local dl_time=$(dateutils.ddiff $start now) echo "Dallas -> ~100M -> $user@$host: $dl_time" } sleep-until-internet () { while ( $ping-test ); do sleep 1 done } when-internet-set-time () { sleep-until-internet ntpdate pool.ntpdate.org } print-internet-down () { print-label 1 0 " down " } print-internet-up () { print-label 2 0 " up " } ping-test () { local quiet=$1 local google=8.8.8.8 # Google's high-availability DNS ping -w 2 -c 1 $google &> /dev/null local up=$? (( ! ${+quiet} )) && if (( $up == 0 )); then print-internet-up else print-internet-down fi return $up } alias {pingtest,pt}=ping-test alias dhc="sudo dhclient $NET "