kupl/MicSE

Update bootstrap.sh

Opened this issue · 0 comments

Feature Proposal

Purpose

기존의 bootstrap 파일은 opam package 가 자동으로 안깔리는 문제가 있다. 현재로서 이를 해결하려면 package를 직접 깔아주도록 스크립트를 짜야 한다.

#!/bin/bash

##### bootstrap.sh - set-up system and build MicSE project.
export DEBIAN_FRONTEND=noninteractive

# Env
OPAM_SWITCH_VERSION=4.10.0
Z3_VERSION=4.8.12
CORES=4

# Setup System Dependencies
echo "[NOTE] Start Setup System Dependencies"
sudo apt-get update >/dev/null
for pkg in "cmake" "build-essential" "python2.7" "libgmp-dev" "opam" "ocaml-findlib"; do
  echo "[NOTE] $pkg: Install"
  sudo apt-get install -y -qq $pkg >/dev/null 2>&1
  # if [ $(dpkg-query -W -f='${Status}' $pkg 2>/dev/null | grep -c "ok installed" 2>/dev/null) -eq 0 ]; then
  #   echo "[NOTE] $pkg: Installation started."
  #   sudo apt-get install -y -qq $pkg >/dev/null 2>&1
  #   echo "[NOTE] $pkg: Installed successfully."
  # else
  #   echo "[NOTE] $pkg: Already installed."
  # fi
done
echo "[NOTE] End-up Setup System Dependencies"


# Download MicSE
cd ~/
git clone https://github.com/kupl/MicSE.git
cd MicSE


# Initialize opam
echo "[NOTE] Start Initialize OPAM with Installing OCAML Dependencies"
opam init -y --bare >/dev/null
opam update >/dev/null
eval $(opam env)
if [[ ! "$(ocaml --version)" =~ "$OPAM_SWITCH_VERSION" ]]; then
  if [[ "$(opam switch list 2>/dev/null | grep -c "$OPAM_SWITCH_VERSION")" -eq 0 ]]; then
    opam switch create $OPAM_SWITCH_VERSION >/dev/null
  else
    opam switch $OPAM_SWITCH_VERSION >/dev/null
  fi
fi
eval $(opam env) && \
  opam install -y -q -j $CORES batteries core dune menhir ocamlgraph ptime yojson z3 zarith ounit2 bignum ppx_deriving mtime logs
echo "[NOTE] Current OCAML version is $(ocaml --version | grep -P "\d+\.\d+\.\d+" -o)"
OPAM_LIB_DIR=~/.opam/$OPAM_SWITCH_VERSION/lib/
echo "[NOTE] End-up Initialize OPAM"

# Install Z3
# if [[ ! -d "${OPAM_LIB_DIR%%/}/z3" ]]; then
#   echo "[NOTE] Start Install Z3"
#   curl -L -o z3-$Z3_VERSION.tar.gz https://github.com/Z3Prover/z3/archive/z3-$Z3_VERSION.tar.gz >/dev/null 2>&1 && \
#     tar -zxvf z3-$Z3_VERSION.tar.gz >/dev/null 2>&1 && \
#     rm z3-$Z3_VERSION.tar.gz >/dev/null
#   Z3_DIR=~/z3-z3-$Z3_VERSION/
#   cd ${Z3_DIR%%/}/ && \
#     python2.7 scripts/mk_make.py --ml --staticlib >/dev/null
#   eval $(opam env) && \
#     make -C build -j $CORES >/dev/null 2>&1
#   eval $(opam env) && \
#     ocamlfind install z3 build/api/ml/* build/libz3-static.a >/dev/null && \
#     sudo cp build/z3 /usr/bin/z3 && \
#     rm -rf ${Z3_DIR%%/}
#   echo "[NOTE] End-up Install Z3"
# fi

# Build
if [[ ! -d "~/MicSE" ]]; then
  eval $(opam env) && cd ~/MicSE && make
#  ln -s /vagrant ~/MicSE
fi

echo "eval \$(opam env)" >> ~/.bashrc

Expectation

  • ...

Plan

  • ...

Reference

  • ...