Skip to content

Instantly share code, notes, and snippets.

@bharadwaj-raju
Last active May 1, 2016 14:29
Show Gist options
  • Save bharadwaj-raju/9d26ebe7d5972731a3bb1bf96ca29f94 to your computer and use it in GitHub Desktop.
Save bharadwaj-raju/9d26ebe7d5972731a3bb1bf96ca29f94 to your computer and use it in GitHub Desktop.
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>"
else
if [ -f "$1" ] ; then
NAME=${1%.*}
#mkdir $NAME && cd $NAME
case "$1" in
*.tar.bz2) tar xvjf ./"$1" ;;
*.tar.gz) tar xvzf ./"$1" ;;
*.tar.xz) tar xvJf ./"$1" ;;
*.lzma) unlzma ./"$1" ;;
*.bz2) bunzip2 ./"$1" ;;
*.rar) unrar x -ad ./"$1" ;;
*.gz) gunzip ./"$1" ;;
*.tar) tar xvf ./"$1" ;;
*.tbz2) tar xvjf ./"$1" ;;
*.tgz) tar xvzf ./"$1" ;;
*.zip) unzip ./"$1" ;;
*.Z) uncompress ./"$1" ;;
*.7z) 7z x ./"$1" ;;
*.xz) unxz ./"$1" ;;
*.exe) cabextract ./"$1" ;;
*) echo "extract: '$1' - unknown archive method" ;;
esac
else
echo "'$1' - file does not exist"
fi
fi
}
function compile {
# NOTE: Requires the extract() shell function
if [ -z "$1" ]; then
# Display usage if no parameters given
echo "Usage: compile <source code archive>"
else
if [ -f "$1" ] ; then
extract "$1"
filename=$(basename "$1")
foldername="${filename%.*}" # Remove extension
if [[ "${foldername##*.}" == *tar ]] ; then # Workaround tar.*
foldername="${foldername%.*}"
fi
pushd "$foldername"
if ls ./autogen* 1> /dev/null 2>&1 ; then
sh ./autogen*
fi
if ls ./configure 1> /dev/null 2>&1 ; then
sh ./configure
elif ls ./configure.sh 1> /dev/null 2>&1 ; then
sh ./configure.sh
fi
make
sudo make install
make distclean
popd
else
echo "Error: file $1 does not exist"
fi
fi
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment