#!/bin/bash # Copyright: 2023 Virtuozzo International GmbH # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. inherit config DESCRIPTION="Query manage modules" DEFAULT_ACTION="List" function describeList() { echo "List all available modules"; } function doList() { [[ $# -gt 0 ]] && die -q "Too many parameters" local path file module name desc; local -a extra_modules; for path in "${MANAGE_MODULES_PATH[@]}" ; do [[ -d ${path} ]] || continue; for file in "${path}"/*.module ; do [[ -f ${file} ]] || continue; extra_modules=( "${extra_modules[@]}" "${file}" ); done; done; if isOutputMode brief; then echo -e "help\nusage\nversion" for module in "${extra_modules[@]}" ; do name=${module##*/}; echo "${name%%.module}" done; else echo -e "\tBuilt-in modules:"; echo -e "\t\thelp\t\t\tDisplay a help message"; echo -e "\t\tusage\t\t\tDisplay a usage message"; echo -e "\t\tversion\t\t\tDisplay version information"; if [[ ${#extra_modules[@]} -gt 0 ]] ; then echo -e "\tExtra modules:"; tabs 14 for module in "${extra_modules[@]}" ; do name=${module##*/}; name=${name%%.module}; desc=$(MANAGE_MODULE_NAME=${name} loadConfig "${module}" DESCRIPTION) desc=${desc:-No description available} echo -e "\t${name} \t\t${desc}" done tabs -8 fi fi } function doHas() { [[ -z $1 ]] && die -q "Required option (module name) missing"; [[ $# -gt 1 ]] && die -q "Too many parameters"; local modname=$1 modpath; for modpath in "${ESELECT_MODULES_PATH[@]}" ; do [[ -f ${modpath}/${modname}.module ]] && return 0; done; return 1; }