diff --git a/neofetch b/neofetch index 6b66a2e1..caa82a20 100755 --- a/neofetch +++ b/neofetch @@ -20,7 +20,7 @@ export LANG=C export PATH="/usr/sbin:/sbin:${PATH}" # Set no case match. -shopt -s nocasematch nocaseglob +shopt -s nocasematch # Reset colors and bold. reset="\033[0m" @@ -1922,28 +1922,34 @@ get_ascii() { [[ "$ascii" != "distro" && ! -f "$ascii" ]] && \ err "Ascii: Ascii file not found, using distro ascii." - # Find ascii art dir. - if [[ -d "/usr/share/neofetch/ascii/distro" ]]; then - ascii_dir="/usr/share/neofetch/ascii/distro" + # Lowercase the distro name so we can match it to a file. + if (("$bash_version" <= 3)); then + ascii="$(tr '[:upper:]' '[:lower:]' <<< "$ascii_distro")" + else + ascii="${ascii_distro,,}" + fi - elif [[ -d "/usr/local/share/neofetch/ascii/distro" ]]; then - ascii_dir="/usr/local/share/neofetch/ascii/distro" + if [[ -f "/usr/share/neofetch/ascii/distro/${ascii/ *}" ]]; then + ascii="/usr/share/neofetch/ascii/distro/${ascii/ *}" - elif [[ -d "/data/data/com.termux/files/usr/share/neofetch/ascii/distro" ]]; then - ascii_dir="/data/data/com.termux/files/usr/share/neofetch/ascii/distro" + elif [[ -f "/usr/local/share/neofetch/ascii/distro/${ascii/ *}" ]]; then + ascii="/usr/local/share/neofetch/ascii/distro/${ascii/ *}" + + elif [[ -f "/data/data/com.termux/files/usr/share/neofetch/ascii/distro/${ascii/ *}" ]]; then + ascii="/data/data/com.termux/files/usr/share/neofetch/ascii/distro/${ascii/ *}" else get_script_dir 2>/dev/null - ascii_dir="${script_dir}/ascii/distro" + + # If the ascii file doesn't exist fallback to text mode. + if [[ -f "$script_dir/ascii/distro/${ascii/ *}" ]]; then + ascii="$script_dir/ascii/distro/${ascii/ *}" + + else + to_off "Ascii: Ascii file not found, falling back to text mode." + return + fi fi - - # Remove 'linux' from 'linux mint'. - [[ "$ascii_distro" =~ ^linux ]] && ascii_distro="${ascii_distro/linux }" - - # ascii_dir/first_letter (example: 'ascii_dir/m'*) - for art in "${ascii_dir}/${ascii_distro:0:1}"*; do - [[ "$ascii_distro" =~ ${art/*\/} ]] && { ascii="$art"; break; } - done fi # Set locale to get correct padding.