3 # Copyright 2016,2017 RIFT.IO Inc
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 # Author(s): Jeremy Mordkoff, Lezz Giles
18 # Creation Date: 08/29/2016
24 # This is a top-level build script for OSM SO or UI
26 # Arguments and options: use -h or --help
28 # dependencies -- requires sudo rights
32 # Defensive bash programming flags
33 set -o errexit
# Exit on any error
34 trap 'echo ERROR: Command failed: \"$BASH_COMMAND\"' ERR
35 set -o nounset
# Expanding an unset variable is an error. Variables must be
36 # set before they can be used.
38 ###############################################################################
39 # Options and arguments
42 params
="$(getopt -o h -l install,help --name "$0" -- "$@
")"
43 if [ $?
!= 0 ] ; then echo "Failed parsing options." >&2 ; exit 1 ; fi
47 installFromPackages
=false
51 --install) installFromPackages
=true
; shift;;
59 echo " $0 [--install] [PLATFORM_REPOSITORY] [PLATFORM_VERSION]"
62 echo " Prepare current system to run $MODULE. By default, the system"
63 echo " is set up to support building $MODULE; optionally, "
64 echo " $MODULE can be installed from a Debian package repository."
66 echo " --install: install $MODULE from package"
67 echo " PLATFORM_REPOSITORY (optional): name of the RIFT.ware repository."
68 echo " PLATFORM_VERSION (optional): version of the platform packages to be installed."
72 *) echo "Not implemented: $1" >&2; exit 1;;
76 # Turn this on after handling options, so the output doesn't get cluttered.
77 set -x # Print commands before executing them
79 ###############################################################################
80 # Set up repo and version
82 PLATFORM_REPOSITORY
=${1:-OSM3}
83 PLATFORM_VERSION
=${2:-5.2.0.2.72254}
85 ###############################################################################
88 # must be run from the top of a workspace
91 # enable the right repos
92 curl http
://repos.riftio.com
/public
/xenial-riftware-public-key | sudo apt-key add
-
94 # always use the same file name so that updates will overwrite rather than enable a second repo
95 sudo curl
-o /etc
/apt
/sources.list.d
/rift.list http
://buildtracker.riftio.com
/repo_file
/ub16
/${PLATFORM_REPOSITORY}/
98 sudo apt
install -y --allow-downgrades rw.tools-container-tools
=${PLATFORM_VERSION} rw.tools-scripts
=${PLATFORM_VERSION}
100 if $installFromPackages; then
102 # Install module and platform from packages
103 sudo
-H /usr
/rift
/container_tools
/mkcontainer
--modes $MODULE --repo ${PLATFORM_REPOSITORY} --rw-version ${PLATFORM_VERSION}
107 # Install environment to build module
108 sudo
-H /usr
/rift
/container_tools
/mkcontainer
--modes $MODULE-dev --repo ${PLATFORM_REPOSITORY} --rw-version ${PLATFORM_VERSION}
109 sudo
-H pip3
install --upgrade pip
110 sudo
-H pip3
install setuptools
111 sudo
-H pip3
install juju
112 sudo mkdir
-p /usr
/rift
/etc
/default
113 sudo
chmod 777 /usr
/rift
/etc
/default
114 echo LAUNCHPAD_OPTIONS
="--use-xml-mode" >> /usr
/rift
/etc
/default
/launchpad
115 sudo systemctl daemon-reload
117 # Build and install module
123 if [[ $MODULE == SO
]]; then
124 echo "Creating Service ...."
125 sudo
/usr
/rift
/bin
/create_launchpad_service