summaryrefslogtreecommitdiff
path: root/utils.sh
blob: 5cfec2809dc28cb3a087933f6be3abbbd1464d85 (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
#!/bin/sh

check_dest() 
{
  [ -d "$OT_PREFIX/tmp" ] || mkdir -p "$OT_PREFIX/tmp"
  if ! [ -d "$OT_PREFIX/tmp" ]; then
    echo "Could not create OT_PREFIX directory! Aborting..."
    exit 1
  fi
  [ -d "$HOME/.opentox/log" ] || mkdir -p "$HOME/.opentox/log"
  if ! [ -d "$HOME/.opentox/log" ]; then
    echo "Could not create CONFIG (~/.opentox) directory! Aborting..."
    exit 1
  fi
}

run_cmd ()
{
  local cmd="$1"; local title="$2"
  printf "%50s" "$title"
  if ! eval $cmd >>$LOG 2>&1 ; then  
    printf "                              [ \033[31m%s\033[m ]\n" "FAIL"
    echo "Last 10 lines of log:"
    tail -10 "$LOG"
    exit 1
  fi
  printf "                              [ \033[32m%s\033[m ]\n" "OK"
}


check_utils() {
  for u in $1; do
    eval `echo $u | tr "[:lower:]" "[:upper:]" | tr "-" "_"`=`which $u` || (echo "'$u' missing. Install '$u' first." 1>&2 && exit 1)
  done
}


install_ruby() {
  printf "\n%50s\n" "RUBY"
  local DIR=`pwd`
  check_utils "rbenv curl make"
  if ! $RBENV versions $RUBY_NUM_VER | grep $RUBY_NUM_VER>/dev/null 2>&1; then
    [ -d $DIR/tmp ] || mkdir -p $DIR/tmp && cd $DIR/tmp
    ([ -d $DIR/tmp/ruby-$RUBY_NUM_VER ] || $CURL $RUBY_DWL/ruby-$RUBY_NUM_VER.tar.gz 2>/dev/null | tar xz) && cd ruby-$RUBY_NUM_VER
    cmd="./configure --prefix=$RUBY_DIR" && run_cmd "$cmd" "Configure"
    cmd="$MAKE -j2" && run_cmd "$cmd" "Make"
    cmd="$MAKE install" && run_cmd "$cmd" "Install"
  fi
  cd $DIR
  cmd="$RBENV rehash" && run_cmd "$cmd" "Rbenv rehash"
  cmd="$RBENV local $RUBY_NUM_VER" && run_cmd "$cmd" "Rbenv set ruby"
}


install_ob_ruby() {
  printf "\n%50s\n" "OB RUBY BINDINGS"
  local DIR=`pwd`
  check_utils "rbenv make"
  SRC_DIR=$(dirname $(find $OT_PREFIX -name openbabel-ruby.cpp))
  [ -d "$SRC_DIR" ] || (echo "Sources not found." 1>&2 && exit 1)
  cd $SRC_DIR
  cmd="$RBENV local $RUBY_NUM_VER" && run_cmd "$cmd" "Configure Ruby"
  sed -i 's/Init_OpenBabel/Init_openbabel/g' openbabel-ruby.cpp # apply fix
  cmd="ruby extconf.rb --with-openbabel-include=../../include --with-openbabel-lib=../../src/.libs" && run_cmd "$cmd" "Extconf ruby bindings"
  cmd="$MAKE" && run_cmd "$cmd" "Make OB ruby bindings"
  cmd="$MAKE install" && run_cmd "$cmd" "Install OB ruby bindings"
  cd $DIR
  cmd="$RBENV rehash" && run_cmd "$cmd" "Rbenv rehash"
}


install_with_bundler() {
  printf "\n%50s\n" "INSTALL"
  check_utils "gem rbenv"
  $GEM list | grep bundler >/dev/null 2>&1 || (cmd="$GEM install bundler" && run_cmd "$cmd" "Install bundler")
  cmd="$RBENV rehash" && run_cmd "$cmd" "Rbenv rehash"
  cmd="bundle install" && run_cmd "$cmd" "Install using bundler"
}


if [ -z "$OT_PREFIX" ]; then
  . ./config.sh
else
  . $HOME/.opentox/config/install/config.sh
fi
check_dest
touch "$OT_UI_CONF"
. "$OT_UI_CONF" 2>/dev/null