#!/usr/bin/env bash # Parse "all" IETF yangmodels from https://github.com/YangModels/yang/standard/ietf # Notes: # - Only a simple smoketest (CLI check) is made, essentially YANG parsing. A full system may not work # - Env variable YANG_STANDARD_DIR should point to yangmodels/standard # - Some FEATURES are set to make it work # - Some YANGmodels are broken, therefore CLICON_YANG_AUGMENT_ACCEPT_BROKEN is true # Magic line must be first in script (see README.md) s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi # Yang specifics: multi-keys and empty type APPNAME=example cfg=$dir/conf_yang.xml cat < $cfg $cfg ietf-vpn-common:vxlan ietf-vpn-common:rtg-isis ietf-vpn-common:bfd ietf-vpn-common:qos ietf-vpn-common:multicast ietf-vpn-common:igmp ietf-vpn-common:mld ${YANG_INSTALLDIR} ${YANG_STANDARD_DIR}/ietf/RFC ${YANG_STANDARD_DIR}/ieee/published true /usr/local/lib/$APPNAME/clispec /usr/local/lib/$APPNAME/cli $APPNAME /usr/local/var/$APPNAME/$APPNAME.sock /usr/local/var/$APPNAME/$APPNAME.pidfile /usr/local/var/$APPNAME EOF # Standard IETF files=$(find ${YANG_STANDARD_DIR}/ietf/RFC -type f -name "*.yang") for f in $files; do if [ -n "$(head -1 $f|grep '^module')" ]; then # Mask old revision if [ $f = ${YANG_STANDARD_DIR}/ietf/RFC/ietf-yang-types@2010-09-24.yang ]; then continue; fi new "$clixon_cli -D $DBG -1f $cfg -y $f show version" expectpart "$($clixon_cli -D $DBG -1f $cfg -y $f show version)" 0 "${CLIXON_VERSION}" fi done rm -rf $dir new "endtest" endtest