download packages from public IP to local repo and create the dev workflow
[bottlenecks.git] / utils / infra_setup / vm_dev_setup / setup_env.sh
1 #!/bin/bash
2
3 set -ex
4
5 bottlenecks_prepare_env()
6 {
7     set +e
8     for i in $PreInstall_Packages; do
9         if ! apt --installed list 2>/dev/null |grep "\<$i\>"
10         then
11             sudo apt-get install  -y --force-yes  $i
12         fi
13     done
14     set -e
15
16     if [ -d $RUBBOS_CACHE_DIR ]; then
17         rm -rf $RUBBOS_CACHE_DIR
18     fi
19     mkdir -p $RUBBOS_CACHE_DIR
20 }
21
22 bottlenecks_download_repo()
23 {
24     if [ -d $BOTTELENECKS_REPO_DIR/.git ]; then
25         cd $BOTTLENECKS_REPO_DIR
26         git pull origin master
27         cd -
28     else
29         rm -rf $BOTTLENECKS_REPO_DIR
30         git clone $BOTTLENECKS_REPO $BOTTLENECKS_REPO_DIR
31     fi
32 }
33
34 bottlenecks_download_packages()
35 {
36     for i in ; do #list the packages
37        if [[ ! $i ]]; then
38            continue
39        fi
40        curl --connect-timeout 10 -o $RUBBOS_CACHE_DIR/$i $PACKAGE_URL 2>/dev/null
41     done
42 }
43
44 bottlenecks_rubbos_install_exe()
45 {
46     cd $RUBBOS_RUN_DIR
47     ./run.sh
48     cd $RUBBOS_EXE_DIR
49     ./CONTROL_rubbos_exec.sh
50 }
51
52 main()
53 {
54     PreInstall_Packages="gcc gettext g++ libaio1 libaio-dev make"
55     SCRIPT_DIR=`cd ${BASH_SOURCE[0]%/*};pwd`
56
57     source $SCRIPT_DIR/package.conf
58
59     bottlenecks_prepare_env
60     bottlenecks_download_repo
61     bottlenecks_download_packages
62     bottlenecks_rubbos_install_exe
63 }
64
65 main