316923e067dab61645f76e0af6427d719a29e87f
[sim/o1-interface.git] / ntsimulator / scripts / model-install.sh.in
1 #!/bin/bash
2
3 set -eu -o pipefail
4
5 shopt -s failglob
6
7 : ${SYSREPOCTL:=sysrepoctl}
8 : ${SYSREPOCFG:=sysrepocfg}
9 : ${SYSREPOCTL_ROOT_PERMS:=-o root:root -p 600}
10 : ${YANG_DIR:=@CMAKE_CURRENT_SOURCE_DIR@/yang/manager}
11 : ${STARTUP_DIR:=@CMAKE_CURRENT_SOURCE_DIR@/yang/startup}
12
13 is_yang_module_installed() {
14     module=$1
15
16     $SYSREPOCTL -l | grep --count "^$module [^|]*|[^|]*| Installed .*$" > /dev/null
17 }
18
19 install_yang_module() {
20     module=$1
21
22     if ! is_yang_module_installed $module; then
23         echo "- Installing module $module..."
24         $SYSREPOCTL -i -g ${YANG_DIR}/$module.yang $SYSREPOCTL_ROOT_PERMS
25     else
26         echo "- Module $module already installed."
27     fi
28 }
29
30 uninstall_yang_module() {
31     module=$1
32
33     if is_yang_module_installed $module; then
34         echo "- Uninstalling module $module..."
35         $SYSREPOCTL -u -m $module
36     else
37         echo "- Module $module is not installed."
38     fi
39 }
40
41 enable_yang_module_feature() {
42     module=$1
43     feature=$2
44
45     if ! $SYSREPOCTL -l | grep --count "^$module [^|]*|[^|]*|[^|]*|[^|]*|[^|]*|[^|]*|.* $feature.*$" > /dev/null; then
46         echo "- Enabling feature $feature in $module..."
47         $SYSREPOCTL -m $module -e $feature
48     else
49         echo "- Feature $feature in $module already enabled."
50     fi
51 }
52
53 echo "- Installing network-topology-simulator..."
54 install_yang_module network-topology-simulator
55
56 echo "- Adding startup datastore in network-topology-simulator..."
57 $SYSREPOCFG -d startup -i $YANG_DIR/network-topology-simulator.xml -f xml network-topology-simulator