diff --git a/igv-2.8.0-0.build.sh b/igv-2.8.0-0.build.sh new file mode 100755 index 0000000..1102f9e --- /dev/null +++ b/igv-2.8.0-0.build.sh @@ -0,0 +1,104 @@ +#! /bin/bash + +# http://software.broadinstitute.org/software/igv/ + +set -xe + +PKG=igv +VERSION=2.8.0 +VERSION2=$(echo $VERSION | cut -d. -f1,2) +BUILD=0 + +PREFIX=/pkg/$PKG-$VERSION-$BUILD +if [ -n "$TESTING" ]; then PREFIX=/dev/shm/$PKG-$VERSION-$BUILD ; fi + +mkdir -p $PREFIX +cat >$PREFIX/profile <<-EOF + . /pkg/openjdk-11.0.3.2-0/profile + PATH=$PREFIX:\$PATH + if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH ; fi +EOF +. $PREFIX/profile + +BUILDDIR=$PREFIX/build + +mkdir -p $BUILDDIR +cd $BUILDDIR + +test -e IGV_$VERSION.zip || wget http://data.broadinstitute.org/igv/projects/downloads/$VERSION2/IGV_$VERSION.zip +test -d IGV_$VERSION || unzip -q IGV_$VERSION.zip + +find . -perm 775 -exec chmod 755 {} \+ -o -perm 664 -exec chmod 644 {} \+ +sed -e '/^exec/ s/Xmx4g/Xmx${IGVXMX:-8g}/' -i IGV_$VERSION/igv.sh +sed -e '/^exec/ s/Xmx4g/Xmx${IGVXMX:-8g}/' -i IGV_$VERSION/igv_hidpi.sh + +mv IGV_$VERSION/* $PREFIX +rmdir IGV_$VERSION + +cd $PREFIX +cat >igv <<-'EOF' + #!/bin/sh + + die() { echo $1; exit 1; } + + parse_mem() { + case $1 in + [1-9]g | [1-9][0-9]g | [1-2][0-9][0-9]g) + IGVXMX=$1 ;; + *) + die "# Error: need a proper value for memory to use, eg. 8g" ;; + esac + } + + script=`basename $0` + + IGVXMX=${IGVXMX:-8g} + export IGVXMX + + case "$script" in + igvxmem_hidpi) + parse_mem $1; shift + exec igv_hidpi.sh "$@" ;; + igvxmem) + parse_mem $1; shift + exec igv.sh "$@" ;; + esac + + MEM_KB=$(grep 'MemTotal:' /proc/meminfo | head -1 | rev | cut -d' ' -f2 | rev) + MEM_GB=$(( $MEM_KB/1024/1024 )) + + CONSIDER="# Consider using 'igvxmem XYZg' to start igv with proper memory setup." + + if test $MEM_GB -lt 7; then + MSG="# This is fairly below the suitable amount of 8 GB.\n$CONSIDER" + elif test $MEM_GB -gt 17 ; then + MSG="$CONSIDER\n# To gain better performance you may increase the memory in sane steps." + fi + + if test -n "$MSG"; then + echo '# NOTE:' + echo "# found approx. $MEM_GB GB of Memory on your host." + echo '#' + echo -e "$MSG" + echo '#' + echo '# igv with default settings will start in 3 seconds ...' + sleep 3 + fi + + case "$script" in + igv_hidpi) + exec igv_hidpi.sh "$@" ;; + *) + exec igv.sh "$@" ;; + esac + +EOF + +chmod 755 igv + +ln -s igv igvxmem +ln -s igv igv_hidpi +ln -s igv igvxmem_hidpi + + +exit