mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 06:02:11 +02:00

Some files had x permission that shouldn't and some scripts were missing x permission. Change-Id: I9af0edc7c87fa1ab4d6795ec7861e07517d00c67
125 lines
2.7 KiB
Bash
Executable file
125 lines
2.7 KiB
Bash
Executable file
installdir="$HOME/.eclipsesettings"
|
|
if test ! -d $installdir; then
|
|
mkdir $installdir
|
|
if test ! -d $installdir; then
|
|
echo fail:cannot create $installdir
|
|
exit 1
|
|
fi
|
|
fi
|
|
cat > $installdir/bootstrap.sh <<-\EOF
|
|
#!/bin/sh
|
|
installdir="$HOME/.eclipsesettings"
|
|
proxytmp=$installdir/proxy.b64
|
|
success=false
|
|
|
|
cleanup() {
|
|
rm -f $installdir/bootstrap.sh
|
|
}
|
|
|
|
trap 'cleanup' EXIT
|
|
|
|
parent_is_not_orphan () {
|
|
parent=`ps -ef|awk '$2=='$$'{print $3}'`
|
|
let parent=$parent+0
|
|
if [[ $parent -eq 1 ]]; then
|
|
return 1
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
do_check() {
|
|
java_vers=`java -version 2>&1`
|
|
case "$java_vers" in
|
|
*"not found")
|
|
echo "fail:could not find a valid java installation"
|
|
return
|
|
;;
|
|
esac
|
|
major=`expr "$java_vers" : ".* version \"\([0-9]*\)\.[0-9]*.*\""`
|
|
minor=`expr "$java_vers" : ".* version \"[0-9]*\.\([0-9]*\).*\""`
|
|
if test "$major" -ge 2 -o "$minor" -ge 8; then
|
|
:
|
|
else
|
|
echo "fail:invalid java version $major.$minor; must be >= 1.8"
|
|
return
|
|
fi
|
|
case "`uname`" in
|
|
Linux)
|
|
osname="linux";
|
|
osarch=`uname -m`;
|
|
proxydir=$installdir/proxy;
|
|
plugins=$proxydir/plugins;;
|
|
Darwin)
|
|
osname="macosx";
|
|
osarch=`uname -m`;
|
|
proxydir=$installdir/Proxy.app;
|
|
plugins=$proxydir/Contents/Eclipse/plugins;;
|
|
*)
|
|
echo fail:system not supported;
|
|
return;;
|
|
esac
|
|
proxy=not_found
|
|
if test -d $proxydir; then
|
|
bundle="org.eclipse.remote.proxy.server.core_$1.jar"
|
|
if test -f $plugins/$bundle; then
|
|
proxy=found
|
|
else
|
|
mv $proxydir $proxydir.pre_$1
|
|
fi
|
|
fi
|
|
echo ok:$proxy/$osname/$osarch
|
|
}
|
|
|
|
do_download() {
|
|
dd of=$proxytmp ibs=680 count=$1
|
|
IFS= read -r last
|
|
echo "$last" >> $proxytmp
|
|
base64 --decode < $proxytmp | (cd $installdir && tar zxvf -) > /dev/null 2>&1
|
|
if test $? -eq 0; then
|
|
echo ok
|
|
else
|
|
echo fail:download failed
|
|
fi
|
|
}
|
|
|
|
#
|
|
# Start java in background so we can clean up after connection is dropped. The only way to tell if this
|
|
# has happened is to poll if ppid has changed to 1 (i.e. we no longer have a controlling terminal)
|
|
#
|
|
start_server() {
|
|
# enable debugoptions in order to attach a debugger
|
|
#debugoptions="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044,quiet=y"
|
|
|
|
# use globbing to find launcher version
|
|
java -cp $plugins/org.eclipse.equinox.launcher_1.*.jar \
|
|
$debugoptions \
|
|
org.eclipse.equinox.launcher.Main \
|
|
-application org.eclipse.remote.proxy.server.core.application \
|
|
-noExit 0<&0 &
|
|
|
|
pid=$!
|
|
|
|
trap 'kill $pid; exit' HUP INT TERM
|
|
|
|
while parent_is_not_orphan; do
|
|
sleep 10
|
|
done
|
|
|
|
kill $pid
|
|
}
|
|
|
|
echo running
|
|
|
|
while read line arg; do
|
|
case $line in
|
|
check) do_check $arg;;
|
|
download) do_download $arg;;
|
|
start) start_server;;
|
|
exit) break;;
|
|
*) echo fail:unrecognized command:$line; exit 1;;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
chmod 755 $installdir/bootstrap.sh
|
|
exec $installdir/bootstrap.sh
|