New shell gimmicks
# extract the code and eventual perl parameters, if any
code=""
args=""
last=""
for arg in "$@"; do
args="$args $last"
last="$arg"
done
code=$last
# fix perl -F /reg/ bug, complains about file /reg/ not found,
# so remove the space after -F
args=`echo "$args" | sed -e 's/-F /-F/' -e 's/-M /-M/'`
# convert $1..n to $F[0..n]
code=`echo "$code" | perl -pe 's/\\\$([0-9]+?)/\$x=\$1-1;"\\\$F[\$x]"/ge'`
# rumble
defaultmodules="-MData::Dumper"
if perl -MIO::All -e0 > /dev/null 2>&1; then
defaultmodules="$defaultmodules -MIO::All"
fi
if test -n "$PWKDEBUG"; then
set -x
fi
perl $defaultmodules $args -lane "$code$begin"
if test -n "$PWKDEBUG"; then
set +x
fi
fi
fi
}
if ! tar ${extr}tf "$tarball" | cut -d/ -f1 | sort -u | wc -l
| egrep ' 1$' > /dev/null 2>&1; then
# does not extract into own directory
dir=`n2dir "$tarball" "(tar.gz|tgz|tar.bz2|tbz|tar|jar|tar.z)"`
mkdir -p $dir
extr="-C $dir -${extr}"
fi
act tar ${extr}vxf $tarball
elif echo $tarball | grep -Ei '.zip$' > /dev/null 2>&1; then
# zip file
if unzip -l "$tarball" | grep [0-9] | awk '{print $4}' | cut -d/ -f1 | sort -u \
| wc -l | egrep ' 1$' /dev/null 2>&1; then
# does not extract into own directory
dir=`n2dir "$tarball" zip`
act mkdir -p $dir
opt="-d $dir"
fi
act unzip ${opt} $tarball
elif echo "$tarball" | grep -Ei '.rar$' > /dev/null 2>&1; then
if ! unrar vt "$tarball" | tail -5 | grep '.D...' > /dev/null 2>&1; then
# does not extract into own directory
dir=`n2dir "$tarball" rar`
act mkdir -p "$dir"
(cd "$dir"; act unrar x -e $tarball)
else
act unrar x $tarball
fi
elif echo "$tarball" | grep -Ei '.gz$' > /dev/null 2>&1; then
# pure gzip file
act gunzip "$tarball"
else
:
fi
else
echo "$tarball does not exist!"
fi
else
echo "Usage: untar <tarball>"
fi
}
% h 208.70.160.53 ; dig -x 208.70.160.53 +short oatvip.gpdatacenter.com.
% h theoatmeal.com mx ; dig +nocmd +noall +answer theoatmeal.com mx theoatmeal.com. 1800 IN MX 5 eforwardct2.name-services.com. theoatmeal.com. 1800 IN MX 5 eforwardct3.name-services.com. theoatmeal.com. 1800 IN MX 5 eforwardct.name-services.com.