summaryrefslogtreecommitdiff
path: root/bin/algorithm-install
blob: 20bf847d88fc082d8be52a62cb7eb8bda2b3088f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/sh
#
# Installs Opentox Webservices.
# Author: Christoph Helma, Andreas Maunz.
#


OT_PREFIX="$HOME/opentox-ruby"
RUBY_VER="1.9.3-p125"
RUBY_DWL="http://ftp.ruby-lang.org/pub/ruby/1.9"
FMINER_BRANCH="development"

if [ "$(id -u)" = "0" ]; then
  echo "This script must be run as non-root." 1>&2
  exit 1
fi

# Enforce main directory
DIR=`pwd`
if echo $DIR | grep "algorithm/bin" >/dev/null 2>&1 ; then cd ..; fi


# Ruby
. $HOME/.opentox/opentox-ui.sh 
utils="git rbenv curl"
for u in $utils; do
  eval `echo $u | tr "[:lower:]" "[:upper:]"`=`which $u` || (echo "'$u' missing. Install '$u' first." && exit 1)
done


LOG="$OT_PREFIX/tmp/`basename $0`.log"
echo
echo "Installation ('$LOG'):"

run_cmd ()
{
  local cmd="$1"; local title="$2"
  printf "%30s" "'$title'"
  if ! eval $cmd >>$LOG 2>&1 ; then  
    printf "%50s\n" "FAIL"
    echo "Last 10 lines of log:"
    tail -10 "$LOG"
    exit 1
  fi
  printf "%50s\n" "DONE"
}

install_ruby() {
  local DIR=`pwd`
  [ -d $DIR/tmp ] || mkdir -p $DIR/tmp && cd $DIR/tmp
  ([ -d $DIR/tmp/ruby-$RUBY_VER ] || $CURL $RUBY_DWL/ruby-$RUBY_VER.tar.gz 2>/dev/null | tar xz) && cd ruby-$RUBY_VER
  cmd="./configure --prefix=$HOME/.rbenv/versions/$RUBY_VER" && run_cmd "$cmd" "Configure"
  cmd="make -j2" && run_cmd "$cmd" "Make"
  cmd="make install" && run_cmd "$cmd" "Install"
  $RBENV rehash
  cd $DIR
}

[ "`$RBENV local`" = "$RUBY_VER" ] || install_ruby
$RBENV local $RUBY_VER


# fminer etc
eval RUBY_INC="-I`dirname $HOME/.rbenv/versions/$RUBY_VER/include/ruby*/*linux/ruby`\ -I`dirname $HOME/.rbenv/versions/$RUBY_VER/include/ruby*/ruby`"
eval OPBB_INC="-I`dirname $OT_PREFIX/openbabel*/include/openbabel*/openbabel`"
cmd="$GIT submodule init" && run_cmd "$cmd" "Fminer Init"
cmd="$GIT submodule update" && run_cmd "$cmd" "Fminer Update"
cd "libfminer/libbbrc">>$LOG 2>&1
$GIT checkout $FMINER_BRANCH>>$LOG 2>&1
$GIT pull >>$LOG 2>&1
cd - >>$LOG 2>&1
cd "libfminer/liblast">>$LOG 2>&1
$GIT checkout $FMINER_BRANCH>>$LOG 2>&1
$GIT pull >>$LOG 2>&1
cd - >>$LOG 2>&1
for mylib in bbrc last; do
  cmd="sed -i 's,^INCLUDE_OB.*,INCLUDE_OB\ =\ $OPBB_INC,g' `pwd`/libfminer/lib$mylib/Makefile" && run_cmd "$cmd" "Makefile $mylib (OB)"
  cmd="sed -i 's,^INCLUDE_RB.*,INCLUDE_RB\ =\ $RUBY_INC,g' `pwd`/libfminer/lib$mylib/Makefile" && run_cmd "$cmd" "Makefile $mylib (RB)"
done
cd "libfminer/libbbrc">>$LOG 2>&1
cmd="make ruby" && run_cmd "$cmd" "Make BBRC"
cd - >>$LOG 2>&1
cd "libfminer/liblast">>$LOG 2>&1
cmd="make ruby" && run_cmd "$cmd" "Make LAST"
cd - >>$LOG 2>&1
cd "last-utils">>$LOG 2>&1
$GIT checkout $FMINER_BRANCH>>$LOG 2>&1
$GIT pull >>$LOG 2>&1

cd "$DIR"