summaryrefslogtreecommitdiffstats
path: root/scripts/init-respin-env.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/init-respin-env.sh')
-rw-r--r--scripts/init-respin-env.sh146
1 files changed, 146 insertions, 0 deletions
diff --git a/scripts/init-respin-env.sh b/scripts/init-respin-env.sh
new file mode 100644
index 000000000..6ecfe8363
--- /dev/null
+++ b/scripts/init-respin-env.sh
@@ -0,0 +1,146 @@
+#!/bin/bash
+
+# Copyright 2016 The Linux Foundation
+
+set -e
+
+vagrant_version=1.8.1
+ruby_version=2.1.5
+ruby_patch=https://gist.github.com/mislav/055441129184a1512bb5.txt
+rbenv_git=https://github.com/rbenv/rbenv.git
+
+PVENAME="${CPPROJECT}-openstack"
+PVE_PATH="${PVE_ROOT}/${PVENAME}"
+PVERC=${PVE_PATH}/bin/activate
+PVE_BINDIR=$(dirname $PVERC)
+PVE_ROOT="${HOME}/src/python-virtual"
+
+LOCAL_LIB="${HOME}/src/local-lib"
+LL_LIBDIR="${LOCAL_LIB}/lib"
+
+RH_ARCH64=x86_64
+RH_ARCH32=i686
+DEB_ARCH64=amd64
+DEB_ARCH32=i386
+LV_IMG_DIR=/var/lib/libvirt/images/
+SRC_TIMESTAMP=""
+DST_TIMESTAMP=""
+
+init_virtualenv
+init_rbenv
+init_ruby
+select_ruby ${ruby_version}
+init_virtualenv
+init_vagrant
+install_vagrant_plugins
+import_vagrant_box
+init_local_lib
+init_javascript
+
+function init_virtualenv ()
+{
+ test -d ${PVE_BINDIR} && return 0
+
+ if [ -f /etc/debian_version ]
+ then
+ sudo apt-get -y -qq install virtualenvwrapper python-virtualenv libpython-dev
+ elif [ -f /etc/redhat-release ]
+ then
+ sudo yum -y install python-virtualenv
+ fi
+
+ mkdir -p ${PVE_PATH}
+ virtualenv ${PVE_PATH}
+
+ echo "Please copy all OS_* variables from https://secure.vexxhost.com/console/#/account/credentials to the end of ${PVERC}"
+ echo "Press enter when finished"
+ read
+}
+
+function init_local_lib ()
+{
+ test -d ${LL_LIBDIR} && return 0
+
+ echo "local lib init incomplete"
+}
+
+function init_javascript ()
+{
+ which js && which jq && return 0
+
+ if [ -f /etc/debian_version ]
+ then
+ sudo apt-get -y -qq install nodejs jq
+ elif [ -f /etc/redhat-release ]
+ then
+ sudo yum -y install nodejs jq
+ fi
+}
+
+function init_vagrant ()
+{
+ which vagrant && return 0
+
+ vagrant_pkg_name=vagrant_${vagrant_version}_x86_64.deb
+ vagrant_pkg=https://releases.hashicorp.com/vagrant/${vagrant_version}/${vagrant_pkg_name}
+
+ wget -c ${vagrant_pkg}
+ sudo dpkg -i ${vagrant_pkg_name}
+}
+
+function init_rbenv ()
+{
+ which rbenv && return 0
+
+ # clone rbenv
+ test -d ~/.rbenv/.git || git clone ${rbenv_git} ~/.rbenv
+
+ # clone ruby-build
+ mkdir -p ~/.rbenv/plugins
+ test -d ~/.rbenv/plugins/ruby-build/.git || git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
+
+ # build ruby-build
+ cd ~/.rbenv && src/configure && make -C src
+
+ # Add rbenv to bashrc
+ grep HOME/.rbenv/bin ~/.bash_profile || echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
+
+ # Add rbenv to current environment
+ export PATH="$HOME/.rbenv/bin:$PATH"
+}
+
+function init_ruby ()
+{
+ # Install ruby build deps
+ sudo apt-get build-dep ruby
+ #sudo apt-get -y install \
+ # autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev \
+ # zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
+
+ # Build ruby
+ curl -fsSL ${ruby_patch} | rbenv install --patch ${ruby_version}
+}
+
+function select_ruby ()
+{
+ # Select ruby ${ruby_version} from rbenv
+ rbenv local ${1}
+ rbenv global ${1}
+}
+
+function install_vagrant_plugins ()
+{
+ for plugin in vagrant-openstack-provider vagrant-cachier vagrant-mutate
+ do
+ vagrant plugin install ${plugin}
+ done
+}
+
+function import_vagrant_box ()
+{
+ # Add dummy box
+ vagrant box add dummy https://github.com/huit/vagrant-openstack/blob/master/dummy.box
+
+ cp ${CI_MGMT}/vagrant/examples/box/dummy/Vagrantfile ~/.vagrant.d/boxes/dummy/0/openstack/
+}
+