3 # Copyright (c) 2018 Cisco and/or its affiliates.
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at:
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
18 OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
19 OS_VERSION_ID=$(grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
21 NEXUSPROXY="https://nexus.fd.io"
24 if [ "$OS_ID" == "ubuntu" ]; then
25 VPP_REPO_URL_PATH="./VPP_REPO_URL_UBUNTU"
26 if [ -e "$VPP_REPO_URL_PATH" ]; then
27 VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
28 REPO_NAME=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
29 REPO_NAME=$(echo ${REPO_NAME%io/fd/vpp/})
31 OS_VERSION_CODENAME=$(grep '^VERSION_CODENAME=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
32 REPO_NAME="fd.io.master.ubuntu.${OS_VERSION_CODENAME}.main"
34 REPO_URL="${NEXUSPROXY}/content/repositories/${REPO_NAME}"
36 echo "deb ${REPO_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.list
37 sudo apt-get -y update \
38 -o Dir::Etc::sourcelist="sources.list.d/99fd.io.list" \
39 -o Acquire::AllowInsecureRepositories=true \
40 -o Dir::Etc::sourceparts="-" \
41 -o APT::Get::AllowUnauthenticated=true \
42 -o APT::Get::List-Cleanup="0"
44 # If version is set we will add suffix
45 VPP=(vpp vpp-dbg vpp-dev vpp-lib vpp-plugins)
47 if [ -z "${VPP_VERSION}" ]; then
48 ARTIFACTS+=(${VPP[@]/%/${VPP_VERSION}})
49 ARTIFACTS+=(${DKMS[@]/%/${DKMS_VERSION}})
51 ARTIFACTS+=(${VPP[@]/%/=${VPP_VERSION}})
52 ARTIFACTS+=(${DKMS[@]/%/=${DKMS_VERSION}})
55 if [ "$INSTALL" = true ]; then
57 sudo apt-get -y install ${ARTIFACTS[@]} \
58 -o Acquire::AllowInsecureRepositories=true \
59 -o APT::Get::AllowUnauthenticated=true
62 apt-get -y download ${ARTIFACTS[@]} \
63 -o Acquire::AllowInsecureRepositories=true \
64 -o APT::Get::AllowUnauthenticated=true
67 elif [ "$OS_ID" == "centos" ]; then
68 VPP_REPO_URL_PATH="./VPP_REPO_URL_CENTOS"
69 if [ -e "$VPP_REPO_URL_PATH" ]; then
70 VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
71 REPO_NAME=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
72 REPO_NAME=$(echo ${REPO_NAME%/io/fd/vpp/})
74 REPO_NAME="fd.io.master.centos7"
76 REPO_URL="${NEXUSPROXY}/content/repositories/${REPO_NAME}"
78 sudo cat << EOF > fdio-master.repo
80 name=fd.io master branch latest merge
85 sudo mv fdio-master.repo /etc/yum.repos.d/fdio-master.repo
87 # If version is set we will add suffix
88 VPP=(vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins)
89 if [ -z "${VPP_VERSION}" ]; then
90 ARTIFACTS+=(${VPP[@]/%/${VPP_VERSION}})
92 ARTIFACTS+=(${VPP[@]/%/-${VPP_VERSION}})
95 if [ "$INSTALL" = true ]; then
97 sudo yum -y install ${ARTIFACTS[@]}
100 sudo yum -y install --downloadonly --downloaddir=. ${ARTIFACTS[@]}
102 elif [ "$OS_ID" == "opensuse" ]; then
103 VPP_REPO_URL_PATH="./VPP_REPO_URL_OPENSUSE"
104 if [ -e "$VPP_REPO_URL_PATH" ]; then
105 VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
106 REPO_NAME=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
107 REPO_NAME=$(echo ${REPO_NAME%/io/fd/vpp/})
109 REPO_NAME='fd.io.master.opensuse'
111 REPO_URL="${NEXUSPROXY}/content/repositories/${REPO_NAME}"
113 sudo cat << EOF > fdio-master.repo
115 name=fd.io master branch latest merge
120 sudo mv fdio-master.repo /etc/yum/repos.d/fdio-master.repo
122 # If version is set we will add suffix
123 VPP=(vpp vpp-devel vpp-lib vpp-plugins libvpp0)
124 if [ -z "${VPP_VERSION}" ]; then
125 ARTIFACTS+=(${VPP[@]/%/${VPP_VERSION}})
127 ARTIFACTS+=(${VPP[@]/%/-${VPP_VERSION}})
130 if [ "$INSTALL" = true ]; then
132 sudo yum -y install ${ARTIFACTS[@]}
135 sudo yum -y install --downloadonly --downloaddir=. ${ARTIFACTS[@]}
138 echo "$OS_ID is not yet supported."
143 function display_help () {
144 echo "Usage: $0 [--skip-install] [--vpp <version>] [--dkms <version>]"
147 # Whether to install artifacts or not
149 # VPP version (default empty = latest)
151 # DKMS version (default empty = latest)
179 artifacts "${INSTALL}" "${VPP_VERSION}" "${DKMS_VERSION}"