dotfiles/bash/bash_functions

80 lines
1.8 KiB
Bash

#!/usr/bin/env bash
### ARCHIVE EXTRACTION
# usage: ex <file>
function ex {
if [ -z "$1" ]; then
# display usage if no parameters given
echo "Usage: ex <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
echo " extract <path/file_name_1.ext> [path/file_name_2.ext] [path/file_name_3.ext]"
else
for n in "$@"; do
if [ -f "$n" ]; then
case "${n%,}" in
*.cbt | *.tar.bz2 | *.tar.gz | *.tar.xz | *.tbz2 | *.tgz | *.txz | *.tar)
tar xvf "$n"
;;
*.lzma) unlzma ./"$n" ;;
*.bz2) bunzip2 ./"$n" ;;
*.cbr | *.rar) unrar x -ad ./"$n" ;;
*.gz) gunzip ./"$n" ;;
*.cbz | *.epub | *.zip) unzip ./"$n" ;;
*.z) uncompress ./"$n" ;;
*.7z | *.arj | *.cab | *.cb7 | *.chm | *.deb | *.dmg | *.iso | *.lzh | *.msi | *.pkg | *.rpm | *.udf | *.wim | *.xar)
7z x ./"$n"
;;
*.xz) unxz ./"$n" ;;
*.exe) cabextract ./"$n" ;;
*.cpio) cpio -id <./"$n" ;;
*.cba | *.ace) unace x ./"$n" ;;
*)
echo "ex: '$n' - unknown archive method"
return 1
;;
esac
else
echo "'$n' - file does not exist"
return 1
fi
done
fi
}
function ensure {
if [ -z "$1" ]; then
echo "Usage: ensure <command>"
else
if ! command -v $1 &>/dev/null; then
echo "$1 could not be found"
fi
fi
}
function htd {
echo "$((0x$1))"
}
function b2d {
echo "obase=10; ibase=2; $1" | bc
}
function h2d {
echo "obase=10; ibase=16; $1" | bc
}
function b2h {
echo "obase=16; ibase=2; $1" | bc
}
function h2b {
echo "obase=2; ibase=16; $1" | bc
}
function d2h {
echo "obase=16; ibase=10; $1" | bc
}
function d2b {
echo "obase=2; ibase=10; $1" | bc
}