Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 105 lines (83 sloc) 3.22 KB
#! /bin/bash
set -e
umask 022
PKG=nextflow
VERSION=23.10.0
BUILD=0
JDK=/pkg/openjdk-21.0.0.35-0
PREFIX=/pkg/$PKG-$VERSION-$BUILD
if [ -n "$TESTING" ]; then PREFIX=/scratch/local2/$USER/$PKG-$VERSION-$BUILD ; fi
mkdir -p $PREFIX
cat >$PREFIX/profile <<-EOF
PATH=$PREFIX/bin:\$PATH
if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH ; fi
export NXF_PLUGINS_MODE=prod
export NXF_PLUGINS_DIR=$PREFIX/lib/plugins
EOF
. $PREFIX/profile
BUILD_TMPDIR=/scratch/local2/$PKG-$VERSION-$BUILD-$USER.build.tmp
test -d $BUILD_TMPDIR && rm -r $BUILD_TMPDIR
export TMPDIR=$BUILD_TMPDIR
export HOME=$BUILD_TMPDIR/home
mkdir -p $HOME
BUILDDIR=$PREFIX/build
mkdir -p $BUILDDIR
cd $BUILDDIR
source $JDK/profile
# the '-all' file is a zip archive ...
# orig: https://github.com/nextflow-io/nextflow/releases/download/v23.10.0/nextflow-23.10.0-all
BEEHIVE=https://beehive.molgen.mpg.de/b1ece372a2c4db0c57a204d5a6175eb9/nextflow-23.10.0-all
test -e nextflow-$VERSION-all || wget -nv $BEEHIVE
# effect: this extracts to $HOME/.nextflow/capsule/apps/nextflow-all_'version'
bash nextflow-$VERSION-all info
# 'install' jars under $PREFIX/lib
cd $PREFIX
rm -fr bin lib
mkdir bin lib
# get rid of '.lock', '.extracted'
rm -v $HOME/.nextflow/capsule/apps/nextflow-all_$VERSION/.[a-z]*
mv $HOME/.nextflow/capsule/apps/nextflow-all_$VERSION lib
# create a straightforward launcher
# Reflection, and migrating from Java-8 upwards:
# [... use] --add-opens to open a package, which makes all its types and members accessible
cat <<- LAUNCHER > bin/nextflow
#! /bin/bash
NF_XTMPDIR=\${NF_XTMPDIR:-/scratch/local2/\$USER/nextflow_tmp}
mkdir -vp "\$NF_XTMPDIR"
exec $JDK/bin/java \\
--add-opens=java.base/java.lang=ALL-UNNAMED \\
--add-opens=java.base/java.io=ALL-UNNAMED \\
--add-opens=java.base/java.nio=ALL-UNNAMED \\
--add-opens=java.base/java.net=ALL-UNNAMED \\
--add-opens=java.base/java.util=ALL-UNNAMED \\
--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED \\
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED \\
--add-opens=java.base/java.nio.file.spi=ALL-UNNAMED \\
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED \\
--add-opens=java.base/sun.nio.fs=ALL-UNNAMED \\
--add-opens=java.base/sun.net.www.protocol.http=ALL-UNNAMED \\
--add-opens=java.base/sun.net.www.protocol.https=ALL-UNNAMED \\
--add-opens=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED \\
--add-opens=java.base/sun.net.www.protocol.file=ALL-UNNAMED \\
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED \\
--add-opens=java.base/java.util.regex=ALL-UNNAMED \\
\\
-Djava.io.tmpdir="\$NF_XTMPDIR" \\
-Dfile.encoding=UTF-8 \\
-Djava.awt.headless=true \\
-Dcom.sun.security.enableAIAcaIssuers=true \\
-classpath '$PREFIX/lib/nextflow-all_$VERSION/*' \\
nextflow.cli.Launcher \\
"\${@+\$@}"
LAUNCHER
chmod -c +x bin/nextflow
# FINALLY: some plugins, these are used by nf-core.
# (calling nextflow here needs '/scratch/local/build_home', reason unknown)
rm -vrf /scratch/local/build_home
ln -vs $HOME /scratch/local/build_home
mkdir -vp $NXF_PLUGINS_DIR
nextflow plugin install nf-console
nextflow plugin install nf-validation
rm -vr .nextflow
rm -v /scratch/local/build_home
exit