#!/bin/sh -e # Helper functions for programs that work with satellite files. show_help() { echo "Script with helper functions for working with satellite files. Usage: $0 [arguments] Functions: variable | Get variable set in the header downloads | Get all download urls options | List all available options and their descriptions" } if [ $# -lt 2 ]; then show_help exit 1 fi satellite="$(realpath "$1")" function="$2" # Functions reused in different wrappers func_import="$(printf ' import() { . "%s/functions/$1.sh" } ' "$(dirname "$satellite")")" if [ "$function" = "variable" ]; then name="$3" if [ ! "$name" ]; then show_help exit 1 fi printf "$func_import"' header_end() { variable="$%s" [ "$variable" ] && echo "$variable" exit $? } . %s ' "$name" "$satellite" | PATH= /bin/sh 2> /dev/null elif [ "$function" = "downloads" ]; then printf "$func_import"' download() { [ "$1" ] && echo "$1" } dlextract() { [ "$1" ] && echo "$1" } dlfile() { [ "$1" ] && echo "$1" } header_end() { exit 0; } . %s ' "$satellite" | PATH= /bin/sh 2> /dev/null elif [ "$function" = "options" ]; then printf "$func_import"' define_option() { [ "$1" ] && echo "$1" } header_end() { exit 0; } . %s ' "$satellite" | PATH= /bin/sh 2> /dev/null else show_help exit 1 fi