X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=BUILD.sh;h=b8a9d089e29b6d716cfd328097e750017cf08617;hb=1a1c87ebaf82690ede6654af107593a9d76087c8;hp=c1adc1cf93236f0d6730e4c50004b444f4708646;hpb=b2f92c8398e1ac6036011db59464ad4304220e43;p=osm%2FSO.git diff --git a/BUILD.sh b/BUILD.sh index c1adc1cf..b8a9d089 100755 --- a/BUILD.sh +++ b/BUILD.sh @@ -1,3 +1,4 @@ +#!/usr/bin/env bash # # Copyright 2016 RIFT.IO Inc # @@ -13,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -# Author(s): Jeremy Mordkoff +# Author(s): Jeremy Mordkoff, Lezz Giles # Creation Date: 08/29/2016 # # @@ -22,15 +23,72 @@ # # This is a top-level build script for RIFT.io # -# args none +# Arguments and options: use -h or --help # # dependencies -- requires sudo rights +############################################################################### +# Options and arguments + +params="$(getopt -o suhb: -l install-so,install-ui,build-ui:,help --name "$0" -- "$@")" +if [ $? != 0 ] ; then echo "Failed parsing options." >&2 ; exit 1 ; fi + +eval set -- $params + +installSO=false +installUI=false +UIPathToBuild= + +while true; do + case "$1" in + -s|--install-so) installSO=true; shift;; + -u|--install-ui) installUI=true; shift;; + -b|--build-ui) shift; UIPathToBuild=$1; shift;; + -h|--help) + echo + echo "NAME:" + echo " $0" + echo + echo "SYNOPSIS:" + echo " $0 -h|--help" + echo " $0 [-s] [-u|-b PATH-TO-UI-REPO] [PLATFORM_REPOSITORY] [PLATFORM_VERSION]" + echo + echo "DESCRIPTION:" + echo " Prepare current system to run SO and UI. By default, the system" + echo " is set up to support building SO and UI; optionally, either or" + echo " both SO and UI can be installed from a Debian package repository." + echo + echo " -s|--install-so: install SO from package" + echo " -u|--install-ui: install UI from package" + echo " -b|--build-ui PATH-TO-UI-REPO: build the UI in the specified repo" + echo " PLATFORM_REPOSITORY (optional): name of the RIFT.ware repository." + echo " PLATFORM_VERSION (optional): version of the platform packages to be installed." + echo + exit 0;; + --) shift; break;; + *) echo "Not implemented: $1" >&2; exit 1;; + esac +done + +if $installUI && [[ $UIPathToBuild ]]; then + echo "Cannot both install and build the UI!" + exit 1 +fi -# ARGS +if [[ $UIPathToBuild && ! -d $UIPathToBuild ]]; then + echo "Not a directory: $UIPathToBuild" + exit 1 +fi PLATFORM_REPOSITORY=${1:-OSM} # change to OSM when published -PLATFORM_VERSION=${2:-4.3.1.0.49553} +PLATFORM_VERSION=${2:-4.3.1.0.49553-1} + +############################################################################### +# Main block + +# Turn these on after handling options, so the output doesn't get cluttered. +set -o errexit # Exit on any error +set -x # Print commands before executing them # must be run from the top of a workspace cd $(dirname $0) @@ -79,16 +137,44 @@ sudo rm -f /usr/rift/usr/lib/libmano_yang_gen.so sudo chmod 777 /usr/rift /usr/rift/usr/share +if $installSO; then + sudo apt-get install -y \ + rw.core.mc-\*-${PLATFORM_VERSION} +fi + +if $installUI; then + sudo apt-get install -y \ + rw.ui-about-${PLATFORM_VERSION} \ + rw.ui-logging-${PLATFORM_VERSION} \ + rw.ui-skyquake-${PLATFORM_VERSION} \ + rw.ui-accounts-${PLATFORM_VERSION} \ + rw.ui-composer-${PLATFORM_VERSION} \ + rw.ui-launchpad-${PLATFORM_VERSION} \ + rw.ui-debug-${PLATFORM_VERSION} \ + rw.ui-config-${PLATFORM_VERSION} \ + rw.ui-dummy_component-${PLATFORM_VERSION} +fi + # install some base files used to create VNFs test -d /usr/rift/images || mkdir /usr/rift/images for file in Fedora-x86_64-20-20131211.1-sda-ping.qcow2 Fedora-x86_64-20-20131211.1-sda-pong.qcow2 Fedora-x86_64-20-20131211.1-sda.qcow2; do test -f /usr/rift/images/$file || curl -o /usr/rift/images/$file http://repo.riftio.com/releases/open.riftio.com/4.3.1/$file done -####### If you are re-building, you just need to run +# If you are re-building SO, you just need to run # these two steps -make -j16 -sudo make install - -# note to start the RIFT.io UI please run -echo 'sudo /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- ./demos/launchpad.py --use-xml-mode --no-ui' +if ! $installSO; then + make -j16 + sudo make install +fi + +if [[ $UIPathToBuild ]]; then + make -C $UIPathToBuild -j16 + sudo make -C $UIPathToBuild install +fi + +echo "To run SO with UI please run:" +echo 'sudo -H /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- ./demos/launchpad.py --use-xml-mode' +echo +echo "To run SO without UI please run:" +echo 'sudo -H /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- ./demos/launchpad.py --use-xml-mode --no-ui'