Install script for Open Euphoria
#!/bin/bash | |
############################################################################### | |
## ISC LICENSE: | |
## | |
## Permission to use, copy, modify, and/or distribute this software for | |
## any purpose with or without fee is hereby granted, provided that the above | |
## copyright notice and this permission notice appear in all copies. | |
## | |
## THE SOFTWARE IS PROVIDED “AS IS” AND ISC DISCLAIMS ALL WARRANTIES WITH | |
## REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | |
## AND FITNESS. | |
## IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, | |
## OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF | |
## USE, DATA OR PROFITS, | |
## WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, | |
## ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
################################################################################ | |
## [META Info] | |
## | |
## Title: geuphoria.sh | |
## Version: 0.03 | |
## Description: manage installation and removal of Euphoria Programming Language | |
## Author: Mollusk | |
## ############################################################################# | |
name="euphoria" | |
version="4.1.0" | |
state="beta2" | |
arch="x64" | |
fext="tar.gz" | |
extcmd="tar" | |
deps="curl" | |
target_dir="/usr/local" | |
url="https://svwh.dl.sourceforge.net/project/rapideuphoria/Euphoria/${version}-${state}/${name}-${version}-Linux-${arch}-57179171dbed.${fext}" | |
tmpdir="/tmp" | |
check_deps(){ | |
get_path=$(which curl) | |
if [ ! ${get_path} ];then | |
printf "Please install: ${deps}\n" | |
exit 0; | |
else | |
printf "Deps passed checks..moving on\n" | |
fi | |
} | |
check_root(){ | |
if [[ $EUID -ne 0 ]]; then | |
printf "${LRED}This script must be run as root${NC}\n" 1>&2 | |
exit 1 | |
fi | |
} | |
check_install(){ | |
if [ ! -d ${target_dir}/${name}-${version}-Linux-${arch} ];then | |
printf "Install check passed...moving on...\n" | |
else | |
printf "${0}: ${name}-${version} is already installed\n" | |
exit 0; | |
fi | |
} | |
download_pkgs(){ | |
if [ ! -f ${tmpdir}/${name}-${version}.${fext} ];then | |
curl -o ${tmpdir}/${name}-${version}.${fext} ${url} | |
else | |
printf "The archive already exists..moving to extraction phase\n" | |
fi | |
} | |
extract_files(){ | |
cd ${tmpdir} | |
if [ ! -f ${name}-${version}.${fext} ];then | |
printf "${0}: ${tmpdir}/${name}-${version}.${fext}: no such file\n" | |
else | |
${extcmd} xvzf ${name}-${version}.${fext} | |
fi | |
} | |
install_build(){ | |
cd ${tmpdir} | |
if [ ! -d ${name}-${version}-Linux-${arch} ];then | |
printf "${0}: ${name}-${version}-Linux-${arch}: No such firectory\n" | |
else | |
cp -r ${tmpdir}/${name}-${version}-Linux-${arch} ${target_dir}/ | |
fi | |
} | |
post_install(){ | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/eui /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/euc /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/eutest /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/eudist /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/eudoc /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/eushroud /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/euloc /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/eudis /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/eubind /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/eub /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/echoversion /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/creole /usr/bin | |
ln -v -s ${target_dir}/${name}-${version}-Linux-${arch}/bin/eucoverage /usr/bin | |
} | |
symlinks=$(which {eui,euc,eutest,eudist,eudoc,eushroud,euloc,eudis,eubind,eub,echoversion,creole,eucoverage}) | |
uninstall_pkg(){ | |
if [ ! -d ${target_dir}/${name}-${version}-Linux-${arch} ];then | |
printf "${name}-${version} is not installed\n" | |
if [[ $symlinks ]];then | |
rm /usr/bin/eui | |
rm /usr/bin/euc | |
rm /usr/bin/eutest | |
rm /usr/bin/eudist | |
rm /usr/bin/eudoc | |
rm /usr/bin/eushroud | |
rm /usr/bin/euloc | |
rm /usr/bin/eudis | |
rm /usr/bin/eubind | |
rm /usr/bin/eub | |
rm /usr/bin/echoversion | |
rm /usr/bin/creole | |
rm /usr/bin/eucoverage | |
fi | |
else | |
rm -v -r ${target_dir}/${name}-${version}-Linux-${arch} | |
if [[ $symlinks ]];then | |
rm /usr/bin/eui | |
rm /usr/bin/euc | |
rm /usr/bin/eutest | |
rm /usr/bin/eudist | |
rm /usr/bin/eudoc | |
rm /usr/bin/eushroud | |
rm /usr/bin/euloc | |
rm /usr/bin/eudis | |
rm /usr/bin/eubind | |
rm /usr/bin/eub | |
rm /usr/bin/echoversion | |
rm /usr/bin/creole | |
rm /usr/bin/eucoverage | |
fi | |
if [ ! -d ${target_dir}/${name}-${version}-Linux-${arch} ];then | |
echo | |
printf "${name}-${version} is uninstalled\n" | |
else | |
printf "${name}-${version} still exists on the system\n" | |
printf "Location: ${target_dir}/${name}-${version}-Linux-${arch}\n" | |
fi | |
fi | |
} | |
remove_tmp(){ | |
echo | |
printf "Do you want to remove ${tmpdir}/${name}-${version}-Linux-${arch} and ${tmpdir}/${name}-${version}.${fext}" | |
printf "[y/n]: " | |
read choice | |
if [ "${choice}" = "y" ];then | |
rm -v -r ${tmpdir}/${name}-${version}-Linux-${arch} | |
rm -v -r ${tmpdir}/${name}-${version}.${fext} | |
if [ ! -d ${tmpdir}/${name}-${version}-Linux-${arch} ] && [ ! -f ${tmpdir}/${name}-${version}.${fext} ];then | |
printf "${tmpdir} cleared\n" | |
else | |
printf "Failed to remove files\n" | |
fi | |
elif [ "${choice}" = "n" ];then | |
printf "Exiting...\n" | |
exit 0; | |
else | |
printf "Skipping and exiting...\n" | |
exit 0; | |
fi | |
} | |
case $1 in | |
install | i) | |
check_root | |
check_deps | |
check_install | |
download_pkgs | |
extract_files | |
install_build | |
post_install | |
;; | |
remove | r) | |
check_root | |
uninstall_pkg | |
;; | |
clean | c) | |
remove_tmp | |
;; | |
*) | |
printf """ | |
[SYNOPSIS] | |
${0} <option> | |
[OPTIONS] | |
install | i Install ${name}-${version} | |
remove | r Uninstall ${name}-${version} | |
clean | c Clear out ${name} downloads in ${tmpdir} | |
""" | |
;; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Updated 03-01-17