116 lines
2.6 KiB
Bash
116 lines
2.6 KiB
Bash
##########################
|
|
####### functions ########
|
|
##########################
|
|
|
|
SAVEIFS=$IFS
|
|
IFS=$(echo -en "")
|
|
|
|
function extract {
|
|
if [ -z "$1" ]; then
|
|
# display usage if no parameters given
|
|
echo "Usage: extract <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 "extract: '$n' - unknown archive method"
|
|
return 1
|
|
;;
|
|
esac
|
|
else
|
|
echo "'$n' - file does not exist"
|
|
return 1
|
|
fi
|
|
done
|
|
fi
|
|
}
|
|
|
|
# navigation
|
|
up () {
|
|
local d=""
|
|
local limit="$1"
|
|
|
|
# Default to limit of 1
|
|
if [ -z "$limit" ] || [ "$limit" -le 0 ]; then
|
|
limit=1
|
|
fi
|
|
|
|
for ((i=1;i<=limit;i++)); do
|
|
d="../$d"
|
|
done
|
|
|
|
# perform cd. Show error if cd fails
|
|
if ! cd "$d"; then
|
|
echo "Couldn't go up $limit dirs.";
|
|
fi
|
|
}
|
|
|
|
# python virtualenv
|
|
venv(){
|
|
if [ -f .venv/bin/activate ]; then
|
|
source .venv/bin/activate
|
|
else
|
|
virtualenv .venv && source .venv/bin/activate
|
|
fi
|
|
}
|
|
|
|
# Make directory and change into it.
|
|
function mcd() {
|
|
mkdir -p "$1" && cd "$1";
|
|
}
|
|
|
|
# Change file extensions recursively in current directory
|
|
#
|
|
# change-extension erb haml
|
|
function change-extension() {
|
|
foreach f (**/*.$1)
|
|
mv $f $f:r.$2
|
|
end
|
|
}
|
|
|
|
# Load .env file into shell session for environment variables
|
|
function envup() {
|
|
if [ -f .env ]; then
|
|
export $(sed '/^ *#/ d' .env)
|
|
else
|
|
echo 'No .env file found' 1>&2
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# No arguments: `git status`
|
|
# With arguments: acts like `git`
|
|
g() {
|
|
if [[ $# -gt 0 ]]; then
|
|
git "$@"
|
|
else
|
|
git status
|
|
fi
|
|
}
|
|
|
|
_git_delete_branch ()
|
|
{
|
|
__gitcomp "$(__git_heads)"
|
|
}
|
|
|
|
# Include custom functions
|
|
if [[ -f ~/.functions.local ]]; then
|
|
source ~/.functions.local
|
|
fi
|