#!/bin/bash arg_has_json() { for arg in $@; do if [ ${arg} = "-j" ]; then return 0 fi done return 1 } list_to_json() { mystr=${1} out="" for i in ${mystr}; do if [ -z "${out}" ]; then out="\"${i}\"" else out="${out},\"${i}\"" fi done echo "[${out}]" } list_to_human_readable() { mystr=${1} out="" for i in ${mystr}; do if [ -z "${out}" ]; then out="${i}" else out="${out},${i}" fi done echo "${out}" } map_to_json() { var=$(declare -p "$1") eval "declare -A _arr="${var#*=} last_index=${#_arr[@]} last_index=$((last_index-1)) loops=0 echo "{" for k in "${!_arr[@]}"; do if [ ${loops} -lt ${last_index} ]; then echo " \"$k\": \"${_arr[$k]}\"," else echo " \"$k\": \"${_arr[$k]}\"" fi loops=$((loops+1)) done echo "}" } map_to_human_readable() { var=$(declare -p "$1") eval "declare -A _arr="${var#*=} for k in "${!_arr[@]}"; do echo "$k:${_arr[$k]}" done } strip_device_name() { device=${1#"/dev/"} echo ${device} } must_run_as_root() { if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" exit 1 fi } get_deferred_config() { ENV_VAR=${DEFER_CONFIG:-} if [[ "${ENV_VAR}" = "true" ]] || \ [[ "${ENV_VAR}" = "yes" ]] || \ grep -q defer_config /proc/cmdline; then return 0 fi return 1 } platform_abridged_write() { ENV_VAR=${PLATFORM_ABRIDGED_WRITE:-} if [[ "${ENV_VAR}" = "true" ]] || \ [[ "${ENV_VAR}" = "yes" ]] || \ grep -q platform_abridged_write /proc/cmdline; then return 0 fi return 1 } skip_platform_detection() { ENV_VAR=${SKIP_PLATFORM_DETECTION:-} if [[ "${ENV_VAR}" = "true" ]] || \ [[ "${ENV_VAR}" = "yes" ]] || \ grep -q skip_platform_detection /proc/cmdline; then return 0 fi return 1 } is_rhel_like_os() { . /etc/os-release if [[ "$ID_LIKE" == *centos* ]] || \ [[ "$ID_LIKE" == *fedora* ]] || \ [[ "$ID_LIKE" == *rhel* ]]; then return 0 fi return 1 }