From 1a1c87ebaf82690ede6654af107593a9d76087c8 Mon Sep 17 00:00:00 2001 From: Leslie Giles Date: Tue, 27 Sep 2016 09:51:56 -0400 Subject: [PATCH] Add options to fc20 BUILD.sh to install prebuilt SO and UI Signed-off-by: Leslie Giles --- BUILD.sh | 102 +++++++++++++++++++++++++++++++++++++++++++++++----- BUILD_UB.sh | 6 ++-- 2 files changed, 97 insertions(+), 11 deletions(-) diff --git a/BUILD.sh b/BUILD.sh index c8aec586..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,16 +23,73 @@ # # 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-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 +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' diff --git a/BUILD_UB.sh b/BUILD_UB.sh index 2ddf7822..2fb32f8c 100755 --- a/BUILD_UB.sh +++ b/BUILD_UB.sh @@ -14,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: 8 Sep 2016 -- cloned from BUILD.sh and adapated for Ubuntu # # @@ -51,14 +51,14 @@ while true; do echo echo "SYNOPSIS:" echo " $0 -h|--help" - echo " $0 [-o] [-u|-b PATH-TO-UI-REPO] [PLATFORM_REPOSITORY] [PLATFORM_VERSION]" + 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 " -o|--install-so: install SO from package" + 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." -- 2.25.1