# check if run from script [[ "${BASH_SOURCE[0]}" == "${0}" ]] && exit 1 init_default(){ # read default conf file DEFAULT_CONF="${ROOT_DIR}/config/default.conf" [[ -f "$DEFAULT_CONF" ]] && source "$DEFAULT_CONF" } init_env() { # read config file CONFIG_FILE="/etc/own-pki/own-pki.conf" [[ -f "$CONFIG_FILE" ]] && source "$CONFIG_FILE" || msg_error "File ${ORANGE}$CONFIG_FILE${RED} missing. Run 'sudo bin/install.sh'${NC}" # debug mode if [[ "${DEBUG:-false}" == "true" ]]; then set -x fi out_tmp=$(mktemp) err_tmp=$(mktemp) } clean_string() { echo "$1" | \ # translate special chars to closest ASCII (e.g., 'é' -> 'e') iconv -f utf-8 -t ascii//TRANSLIT | \ # convert to lowercase tr '[:upper:]' '[:lower:]' | \ # replace any non-alphanumeric character with an underscore sed -E 's/[^a-z0-9]+/_/g' | \ # replace multiple underscores into one sed -E 's/(_)+/_/g' | \ # remove underscores at the beginning or end sed -E 's/^_|_$//g' } check_sudo(){ # check if user has sudo rigth if sudo ! -n true 2>/dev/null; then msg_error "\nAccess denied: user $USER does not have sudo privileges or a password is required.\n" exit 1 fi # check if the effective user ID is 0 (root) if [[ $EUID -ne 0 ]]; then msg_error "\nThis script must be run as root or with sudo.\n" exit 1 fi }