mirror of
https://github.com/ryanoasis/nerd-fonts.git
synced 2024-12-19 20:12:52 +02:00
192 lines
5.1 KiB
Bash
Executable File
192 lines
5.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Nerd Fonts Version: 3.0.2
|
|
# Script Version: 1.1.1
|
|
|
|
# Run this script in your local bash:
|
|
# curl https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/bin/scripts/test-fonts.sh | bash
|
|
# Is possible to change the number of columns passing a number as the first parameter (default=16):
|
|
# ./test-fonts.sh 8
|
|
|
|
# Given an array of decimal numbers print all unicode codepoint.
|
|
function print-decimal-unicode-range() {
|
|
local originalSequence=("$@")
|
|
local counter=0
|
|
# Use alternating colors to see which symbols extend out of the bounding
|
|
# box.
|
|
local bgColorBorder='\033[48;5;8m'
|
|
local bgColorCode='\033[48;5;246m'
|
|
local alternateBgColorCode='\033[48;5;240m'
|
|
local bgColorChar='\033[48;5;66m'
|
|
local alternateBgColorChar='\033[48;5;60m'
|
|
local underline='\033[4m'
|
|
local currentColorCode="${bgColorCode}"
|
|
local currentColorChar="${bgColorChar}"
|
|
local reset_color='\033[0m'
|
|
local allChars=""
|
|
local allCodes=""
|
|
local wrapAt=16
|
|
[[ "$wrappingValue" =~ ^[0-9]+$ ]] && [ "$wrappingValue" -gt 2 ] && wrapAt="$wrappingValue"
|
|
local topLineStart="${bgColorBorder}╔═══"
|
|
local topLineMiddle="═══╦═══"
|
|
local topLineEnd="═══╗${reset_color}"
|
|
local bottomLineStart="${bgColorBorder}╚═══"
|
|
local bottomLineMiddle="═══╩═══"
|
|
local bottomLineEnd="═══╝${reset_color}"
|
|
local lineStart="${bgColorBorder}╠═══"
|
|
local lineMiddle="═══╬═══"
|
|
local lineEnd="═══╣${reset_color}"
|
|
local bar="${bgColorBorder}║${reset_color}"
|
|
local originalSequenceLength=${#originalSequence[@]}
|
|
local leftoverSpaces=$((wrapAt - (originalSequenceLength % wrapAt)))
|
|
|
|
# add fillers to array to maintain table:
|
|
if [ "$leftoverSpaces" -lt "$wrapAt" ]; then
|
|
for ((c = 1; c <= leftoverSpaces; c++)); do
|
|
originalSequence+=(0)
|
|
done
|
|
fi
|
|
|
|
local sequenceLength=${#originalSequence[@]}
|
|
|
|
printf "%b" "$topLineStart"
|
|
for ((c = 2; c <= wrapAt; c++)); do
|
|
printf "%b" "$topLineMiddle"
|
|
done
|
|
printf "%b\\n" "$topLineEnd"
|
|
|
|
for decimalCode in "${originalSequence[@]}"; do
|
|
local hexCode
|
|
hexCode=$(printf '%x' "${decimalCode}")
|
|
local code="${hexCode}"
|
|
local char="\\U${hexCode}"
|
|
|
|
# fill in placeholder cells properly formatted:
|
|
if [ "${char}" = "\\U0" ]; then
|
|
char=" "
|
|
code=""
|
|
fi
|
|
|
|
filler=""
|
|
for ((c = ${#code}; c < 5; c++)); do
|
|
filler=" ${filler}"
|
|
done
|
|
|
|
allCodes+="${currentColorCode}${filler}${underline}${code}${reset_color}${currentColorCode} ${reset_color}$bar"
|
|
allChars+="${currentColorChar} ${char} ${reset_color}$bar"
|
|
counter=$((counter + 1))
|
|
count=$(( (count + 1) % wrapAt))
|
|
|
|
if [[ $count -eq 0 ]]; then
|
|
|
|
if [[ "${currentColorCode}" = "${alternateBgColorCode}" ]]; then
|
|
currentColorCode="${bgColorCode}"
|
|
currentColorChar="${bgColorChar}"
|
|
else
|
|
currentColorCode="${alternateBgColorCode}"
|
|
currentColorChar="${alternateBgColorChar}"
|
|
fi
|
|
|
|
printf "%b%b%b" "$bar" "$allCodes" "$reset_color"
|
|
printf "\\n"
|
|
printf "%b%b%b" "$bar" "$allChars" "$reset_color"
|
|
printf "\\n"
|
|
|
|
if [ "$counter" != "$sequenceLength" ]; then
|
|
printf "%b" "$lineStart"
|
|
for ((c = 2; c <= wrapAt; c++)); do
|
|
printf "%b" "$lineMiddle"
|
|
done
|
|
printf "%b\\n" "$lineEnd"
|
|
fi
|
|
|
|
allCodes=""
|
|
allChars=""
|
|
fi
|
|
|
|
done
|
|
|
|
printf "%b" "$bottomLineStart"
|
|
for ((c = 2; c <= wrapAt; c++)); do
|
|
printf "%b" "$bottomLineMiddle"
|
|
done
|
|
printf "%b\\n" "$bottomLineEnd"
|
|
|
|
|
|
}
|
|
|
|
function print-unicode-ranges() {
|
|
echo ''
|
|
|
|
local arr=("$@")
|
|
local len=$#
|
|
local combinedRanges=()
|
|
|
|
for ((j=0; j<len; j+=2)); do
|
|
local start="${arr[$j]}"
|
|
local end="${arr[(($j+1))]}"
|
|
local startDecimal=$((16#$start))
|
|
local endDecimal=$((16#$end))
|
|
|
|
# shellcheck disable=SC2207 # We DO WANT the output to be split
|
|
combinedRanges+=($(seq "$startDecimal" "$endDecimal"))
|
|
|
|
done
|
|
|
|
print-decimal-unicode-range "${combinedRanges[@]}"
|
|
|
|
}
|
|
|
|
function test-fonts() {
|
|
echo "Nerd Fonts - Pomicons"
|
|
print-unicode-ranges e000 e00d
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Powerline"
|
|
print-unicode-ranges e0a0 e0a2 e0b0 e0b3
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Powerline Extra"
|
|
print-unicode-ranges e0a3 e0a3 e0b4 e0c8 e0cc e0d2 e0d4 e0d4
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Symbols original"
|
|
print-unicode-ranges e5fa e62b
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Devicons"
|
|
print-unicode-ranges e700 e7c5
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Font awesome"
|
|
print-unicode-ranges f000 f2e0
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Font awesome extension"
|
|
print-unicode-ranges e200 e2a9
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Octicons"
|
|
print-unicode-ranges f400 f4a8 2665 2665 26A1 26A1 f27c f27c
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Font Logos"
|
|
print-unicode-ranges f300 f32f
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Font Power Symbols"
|
|
print-unicode-ranges 23fb 23fe 2b58 2b58
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Material Design Icons (first few)"
|
|
print-unicode-ranges f0001 f0010
|
|
echo; echo
|
|
|
|
echo "Nerd Fonts - Weather Icons"
|
|
print-unicode-ranges e300 e3eb
|
|
echo; echo
|
|
}
|
|
|
|
wrappingValue="$1"
|
|
|
|
test-fonts
|