Last active
November 8, 2018 13:23
-
-
Save kmpm/35f77936c2bd05eb78d442668ded3f7f to your computer and use it in GitHub Desktop.
URSim Tools
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
VERSION="URSim_Linux-3.7.2.40245.tar.gz" | |
FOLDER="ursim-3.7.2.40245" | |
FILE=ursim.tar.gz | |
UNPACKDIR=/tmp/ursim-unpack | |
function download { | |
if [ -f /tmp/$VERSION ]; then | |
echo "/tmp/$VERSION already exists. No new download will happen." | |
return 0 | |
fi | |
wget https://s3-eu-west-1.amazonaws.com/ur-support-site/45439/$VERSION \ | |
-O /tmp/$VERSION | |
} | |
function unpack { | |
if [ ! -f /tmp/$VERSION ]; then | |
download | |
fi | |
if [ -d $UNPACKDIR ]; then | |
sudo rm -Rf $UNPACKDIR | |
fi | |
DESTINATION=$1 | |
if [ -z ${DESTINATION+x} ]; then echo "unpack needs destination"; exit -1; fi | |
mkdir $UNPACKDIR | |
tar zxf /tmp/$VERSION -C $UNPACKDIR | |
chown -R $USER:$USER $UNPACKDIR | |
chmod 755 $UNPACKDIR | |
local latest="$(ls -rd $UNPACKDIR/ursim-* | head -1)" | |
sudo mv $latest $DESTINATION | |
} | |
needToInstallJava() { | |
echo "Checking java version" | |
if command -v java; then | |
# source https://stackoverflow.com/questions/7334754/correct-way-to-check-java-version-from-bash-script | |
version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}') | |
version1=$(echo "$version" | awk -F. '{printf("%03d%03d",$1,$2);}') | |
if [[ $((10#$version1)) -ge $((10#001006)) ]]; then | |
#echo "java version accepted" | |
return 0 | |
else | |
echo "Java version '$version' is not accepted." | |
fi | |
fi | |
return 1 | |
} | |
function checkJava { | |
needToInstallJava | |
if [[ $? -ne 0 ]]; then | |
# install default jre for distribution, make sure that it's at least 1.6 | |
sudo apt-get -y install default-jre | |
if [[ $? -ne 0 ]]; then | |
echo "Failed installing java, exiting" | |
exit 2 | |
fi | |
needToInstallJava | |
if [[ $? -ne 0 ]]; then | |
echo "Installed java version is too old, exiting" | |
exit 3 | |
fi | |
fi | |
} | |
function reinstall { | |
if [ -z ${URSIM_ROOT+x} ]; then | |
# env variable was not set, try first argument | |
URSIM_ROOT=$1 | |
if [ -z ${URSIM_ROOT+x} ]; then echo "Must provide path for URSIM_ROOT"; exit -1; fi | |
else | |
echo "URSIM_ROOT is set to '$URSIM_ROOT'" | |
fi | |
if [ -d $URSIM_ROOT ]; then | |
echo "$URSIM_ROOT does already exist! Installation can not continue." | |
exit -1 | |
fi | |
unpack $URSIM_ROOT | |
cd $URSIM_ROOT | |
commonDependencies='libcurl3 libjava3d-* ttf-dejavu* fonts-ipafont fonts-baekmuk fonts-nanum fonts-arphic-uming fonts-arphic-ukai' | |
if [[ $(getconf LONG_BIT) == "32" ]] | |
then | |
print "Installer is currently not implemented for 32-bit" | |
# packages=`ls $PWD/ursim-dependencies/*i386.deb` | |
# pkexec bash -c "apt-get -y install $commonDependencies && (echo '$packages' | xargs dpkg -i)" | |
else | |
sudo dpkg --add-architecture i386 | |
pkexec bash -c "apt-get -y install lib32gcc1 lib32stdc++6 libc6-i386 $commonDependencies" | |
#packages=`ls $PWD/ursim-dependencies/*amd64.deb` | |
#pkexec bash -c "(echo '$packages' | xargs dpkg -i)" | |
sudo apt-get -y install libxmlrpc-c++8-dev:i386 libxmlrpc-core-c3:i386 | |
fi | |
source version.sh | |
echo "URSIM_ROOT=$URSIM_ROOT" | |
pushd $URSIM_ROOT/lib &>/dev/null | |
chmod +x ../URControl | |
popd &>/dev/null | |
} | |
function install { | |
checkJava | |
download | |
reinstall $1 | |
} | |
function start { | |
local TYPE=$1 | |
if [ ! -f "$URSIM_ROOT/start-ursim.sh" ]; then | |
echo "URSIM_ROOT is not set!" | |
exit -1 | |
fi | |
$URSIM_ROOT/start-ursim.sh $1 | |
} | |
function help { | |
echo "" | |
echo "ursimtool syntax" | |
echo "" | |
echo "ursimtool help - show this help" | |
echo "ursimtool install <path> - installs $VERSION" | |
echo "URSIM_ROOT=<path> ursimtool start <UR3|UR5|UR10> - starts sim using for robot" | |
echo "" | |
} | |
# if we are not running inside a terminal, make sure that we do | |
tty -s | |
if [[ $? -ne 0 ]] | |
then | |
xterm -e "$0" | |
exit 0 | |
fi | |
set -e | |
$@ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment