Skip to content

Instantly share code, notes, and snippets.

@kmpm
Last active November 8, 2018 13:23
Show Gist options
  • Save kmpm/35f77936c2bd05eb78d442668ded3f7f to your computer and use it in GitHub Desktop.
Save kmpm/35f77936c2bd05eb78d442668ded3f7f to your computer and use it in GitHub Desktop.
URSim Tools
#!/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