Update bootstrap.sh
Opened this issue · 0 comments
cushionbadak commented
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
- ...