#!/bin/sh # User-friendly wrapper for sysrepocfg # TODO: add import/export, copy, ... # Edit YANG binary types using sysrepo, base64, and duct tape. edit() { xpath=$1 if [ -z "$xpath" ]; then echo "Usage: cfg edit \"/full/xpath/to/binary/leaf\"" exit 1 fi if tmp=$(sysrepocfg -G "$xpath"); then file=$(mktemp) echo "$tmp" | base64 -d > "$file" if /usr/bin/editor "$file"; then tmp=$(base64 -w0 < "$file") sysrepocfg -S "$xpath" -u "$tmp" fi rm -f "$file" else echo "Failed to retrieve value for $xpath" exit 1 fi } usage() { echo "Usage:" echo " cfg CMD [ARG]" echo echo "Command:" echo " edit XPATH Edit YANG binary type" echo " help This help text" echo echo "As a backwards compatible fallback, this script forwards" echo "all other commands as options to sysrepocfg." echo exit 0 } cmd=$1; shift case $cmd in edit) edit "$1" ;; help) usage ;; *) set -- "$cmd" "$@" exec sysrepocfg -f json "$@" ;; esac