2019-10-24 00:44:01 +00:00
#!/bin/bash
set -eo pipefail
__dirname = $( cd $( dirname " $0 " ) ; pwd -P)
cd " ${ __dirname } "
if [ " $1 " = "--setup" ] ; then
export HOME = /home/$2
if [ ! -f .setupdevenv ] ; then
echo "Recompiling environment... this might take a while."
#bash configure.sh reinstall
touch .setupdevenv
apt install -y vim
chown -R $3 :$4 /code /var/www
fi
2019-10-24 20:07:19 +00:00
echo " Adding $2 to /etc/passwd "
echo " $2 :x: $3 : $4 ::/home/ $2 :/bin/bash " >> /etc/passwd
echo " Adding $2 to /etc/group "
echo " $2 :x: $4 : " >> /etc/group
2019-10-24 01:06:34 +00:00
echo "echo '' && echo '' && echo '' && echo '###################################' && echo 'ODM Dev Environment Ready. Hack on!' && echo '###################################' && echo '' && cd /code" > $HOME /.bashrc
2019-10-24 00:44:01 +00:00
# Install qt creator
if hash qtcreator 2>/dev/null; then
has_qtcreator = "YES"
fi
if [ " $has_qtcreator " != "YES" ] && [ " $5 " = = "YES" ] ; then
apt install -y libxrender1 gdb qtcreator
fi
# Install liquidprompt
if [ ! -e " $HOME /liquidprompt " ] ; then
git clone https://github.com/nojhan/liquidprompt.git --depth 1 $HOME /liquidprompt
fi
if [ -e " $HOME /liquidprompt " ] ; then
echo " source $HOME /liquidprompt/liquidprompt " >> $HOME /.bashrc
2019-10-24 20:07:19 +00:00
echo "export LP_PS1_PREFIX='(odmdev)'" >> $HOME /.bashrc
2019-10-24 00:44:01 +00:00
fi
# Colors
echo "alias ls='ls --color=auto'" >> $HOME /.bashrc
su -c bash $2
exit 0
fi
platform = "Linux" # Assumed
uname = $( uname)
case $uname in
"Darwin" )
platform = "MacOS / OSX"
; ;
MINGW*)
platform = "Windows"
; ;
esac
if [ [ $platform != "Linux" ] ] ; then
echo "This script only works on Linux."
exit 1
fi
if hash docker 2>/dev/null; then
has_docker = "YES"
fi
if [ " $has_docker " != "YES" ] ; then
echo "You need to install docker before running this script."
exit 1
fi
export PORT = " ${ PORT : =3000 } "
export QTC = " ${ QTC : =NO } "
if [ -z " $DATA " ] ; then
echo " Usage: DATA=/path/to/datasets [VARS] $0 "
echo
echo "VARS:"
echo " DATA Path to directory that contains datasets for testing. The directory will be mounted in /datasets. If you don't have any, simply set it to a folder outside the ODM repository."
echo " PORT Port to expose for NodeODM (default: $PORT ) "
echo " QTC When set to YES, installs QT Creator for C++ development (default: $QTC ) "
exit 1
fi
echo "Starting development environment..."
echo " Datasets path: $DATA "
echo " NodeODM port: $PORT "
echo " QT Creator: $QTC "
if [ ! -e " $HOME " /.odm-dev-home ] ; then
mkdir -p " $HOME " /.odm-dev-home
fi
USER_ID = $( id -u)
GROUP_ID = $( id -g)
USER = $( id -un)
xhost +
2019-10-24 20:07:19 +00:00
docker run -ti --entrypoint bash --name odmdev -v $( pwd ) :/code -v " $DATA " :/datasets -p $PORT :3000 --privileged -e DISPLAY -e LANG = C.UTF-8 -e LC_ALL = C.UTF-8 -v= "/tmp/.X11-unix:/tmp/.X11-unix:rw" -v= " $HOME /.odm-dev-home:/home/ $USER " opendronemap/nodeodm -c " /code/start-dev-env.sh --setup $USER $USER_ID $GROUP_ID $QTC "
2019-10-24 00:44:01 +00:00
exit 0