| #!/bin/bash |
| ################################################################################ |
| # |
| # Copyright 2019 highstreet technologies GmbH and others |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| ################################################################################ |
| |
| set -eu -o pipefail |
| |
| shopt -s failglob |
| |
| : ${SYSREPOCTL:=sysrepoctl} |
| : ${SYSREPOCFG:=sysrepocfg} |
| : ${SYSREPOCTL_ROOT_PERMS:=-o root:root -p 600} |
| : ${YANG_DIR:=@CMAKE_CURRENT_SOURCE_DIR@/yang/manager} |
| : ${STARTUP_DIR:=@CMAKE_CURRENT_SOURCE_DIR@/yang/startup} |
| |
| is_yang_module_installed() { |
| module=$1 |
| |
| $SYSREPOCTL -l | grep --count "^$module [^|]*|[^|]*| Installed .*$" > /dev/null |
| } |
| |
| install_yang_module() { |
| module=$1 |
| |
| if ! is_yang_module_installed $module; then |
| echo "- Installing module $module..." |
| $SYSREPOCTL -i -g ${YANG_DIR}/$module.yang $SYSREPOCTL_ROOT_PERMS |
| else |
| echo "- Module $module already installed." |
| fi |
| } |
| |
| uninstall_yang_module() { |
| module=$1 |
| |
| if is_yang_module_installed $module; then |
| echo "- Uninstalling module $module..." |
| $SYSREPOCTL -u -m $module |
| else |
| echo "- Module $module is not installed." |
| fi |
| } |
| |
| enable_yang_module_feature() { |
| module=$1 |
| feature=$2 |
| |
| if ! $SYSREPOCTL -l | grep --count "^$module [^|]*|[^|]*|[^|]*|[^|]*|[^|]*|[^|]*|.* $feature.*$" > /dev/null; then |
| echo "- Enabling feature $feature in $module..." |
| $SYSREPOCTL -m $module -e $feature |
| else |
| echo "- Feature $feature in $module already enabled." |
| fi |
| } |
| |
| echo "- Installing network-topology-simulator..." |
| install_yang_module network-topology-simulator |
| |
| echo "- Adding startup datastore in network-topology-simulator..." |
| $SYSREPOCFG -d startup -i $YANG_DIR/network-topology-simulator.xml -f xml network-topology-simulator |