#!/bin/bash

#  ----------------------------------------------------------------
#  Copyright (c) 2015-2020 by cisco Systems, Inc.
#  All rights reserved.
# -----------------------------------------------------------------

wget="/usr/bin/wget --timeout=10 --tries=3"
    
# --------------------------------------------------------------------------------
# Calvados lighttpd ports
# --------------------------------------------------------------------------------
confd_meta_port=8022
confd_yang_port=8023
calvados_meta_port=8024
calvados_yang_port=8025
# --------------------------------------------------------------------------------
# XR file locations
# --------------------------------------------------------------------------------
yang_path=/pkg/yang
meta_path=/pkg/yang/meta/calvados
meta_sentinel=/pkg/yang/meta/calvados/.calvados_sentinel
host=$2
option=$1
errors=0

if [ ! -d $meta_path -o ! -f $meta_sentinel -o "$option" = "-r" ]; then
    mkdir -p $meta_path
    if [ "$host" == "" ]; then
	host=`/usr/bin/strings /dev/xr_bootstrap | grep CALVADOS_IP_ADDR | sed 's,^.*=,,g'`
    fi
    if [ $host != "" ]; then
	for port in $confd_meta_port $calvados_meta_port; do
	    files=`$wget -qO- $host:$port | awk '/href=.*\.meta/ { sub(/^.*href="/,""); sub(/".*/,""); print $0; }'`
	    for f in $files; do
		$wget $host:$port/$f -qO $meta_path/$f >& /dev/null
		if [[ $? -ne 0 ]]; then
		    echo "Error getting model $f"
		    errors=1
		fi
	    done
	done
	for port in $confd_yang_port $calvados_yang_port; do
	    files=`$wget -qO- $host:$port | awk '/href=.*\.yang/ { sub(/^.*href="/,""); sub(/".*/,""); print $0; }'`
	    for f in $files; do
		$wget $host:$port/$f -qO $yang_path/$f >& /dev/null
		if [[ $? -ne 0 ]]; then
		    echo "Error getting model $f"
		    errors=1
		fi
	    done
	done
	if [[ $error -eq 0 ]]; then
	    touch $meta_sentinel
	fi
    fi
fi

sync
sync

exit 0

