| #! /bin/bash |
| |
| ### |
| # ============LICENSE_START======================================================= |
| # ONAP POLICY |
| # ================================================================================ |
| # Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. |
| # ================================================================================ |
| # 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. |
| # ============LICENSE_END========================================================= |
| ## |
| |
| lib=${POLICY_HOME}/lib |
| opt=${lib}/opt |
| |
| # change to the options directory |
| cd ${opt} |
| |
| # default field lengths |
| nameLength=20 |
| versionLength=15 |
| |
| # update field lengths, if needed |
| for jar in $(ls) ; do |
| # get file name without 'jar' suffix |
| tmp="${jar%\.jar}" |
| |
| # get feature name by removing the version portion |
| name="${tmp%%-[0-9]*}" |
| |
| # extract version portion of name |
| version="${tmp#${name}-}" |
| |
| # grow the size of the name/version field, if needed |
| if (( "${#name}" > nameLength )) ; then |
| nameLength="${#name}" |
| fi |
| if (( "${#version}" > versionLength )) ; then |
| versionLength="${#version}" |
| fi |
| done |
| |
| # dump out status information |
| function status |
| { |
| local tmp name version status |
| local format="%-${nameLength}s %-${versionLength}s %s\n" |
| |
| printf "${format}" "name" "version" "status" |
| printf "${format}" "----" "-------" "------" |
| for jar in $(ls) ; do |
| # get file name without 'jar' suffix |
| tmp="${jar%\.jar}" |
| |
| # get feature name by removing the version portion |
| name="${tmp%%-[0-9]*}" |
| |
| # extract version portion of name |
| version="${tmp#${name}-}" |
| |
| # determine status |
| status=disabled |
| if [[ -e "${lib}/${jar}" ]] ; then |
| status=enabled |
| fi |
| printf "${format}" "${name}" "${version}" "${status}" |
| done |
| } |
| |
| case "$1" in |
| status) |
| { |
| # dump out status information |
| status |
| };; |
| |
| enable) |
| { |
| # enable the specified options |
| shift |
| match= |
| for name in "$@" ; do |
| # look for matches - 'file' has the full path name |
| file=$(ls ${opt}/"${name}"-[0-9]* 2>/dev/null) |
| if [[ "$?" != 0 ]] ; then |
| # no matching file |
| echo "${name}: no such option" |
| else |
| # found a match (handle multiple matches, just in case) |
| match=true |
| ln -s -f ${file} "${lib}/" |
| fi |
| done |
| if [[ "${match}" ]] ; then |
| echo |
| status |
| fi |
| };; |
| |
| disable) |
| { |
| # disable the specified options |
| shift |
| match= |
| for name in "$@" ; do |
| # look for matches -- 'file' has the last segment of the path name |
| file=$(ls "${name}"-[0-9]* 2>/dev/null) |
| if [[ "$?" != 0 ]] ; then |
| echo "${name}: no such option" |
| else |
| # found a match (handle multiple matches, just in case) |
| match=true |
| (cd ${lib} ; rm -f ${file}) |
| fi |
| done |
| if [[ "${match}" ]] ; then |
| echo |
| status |
| fi |
| };; |
| |
| *) |
| { |
| # print out usage information |
| cat >&2 <<-'EOF' |
| Usage: options status |
| Get enabled/disabled status on all options |
| options enable <option> ... |
| Enable the specified options |
| options disable <option> ... |
| Disable the specified options |
| EOF |
| };; |
| esac |
| exit |