mirror of
https://github.com/vinceliuice/grub2-themes.git
synced 2026-09-04 21:42:47 +08:00
54 lines
1.2 KiB
Bash
Executable File
54 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|
readonly SCRIPT_DIR
|
|
|
|
if [[ -n "${GRUB_MKFONT:-}" ]]; then
|
|
readonly FONT_TOOL="${GRUB_MKFONT}"
|
|
elif command -v grub-mkfont >/dev/null 2>&1; then
|
|
readonly FONT_TOOL="grub-mkfont"
|
|
elif command -v grub2-mkfont >/dev/null 2>&1; then
|
|
readonly FONT_TOOL="grub2-mkfont"
|
|
else
|
|
printf 'error: grub-mkfont or grub2-mkfont is required\n' >&2
|
|
exit 1
|
|
fi
|
|
|
|
generate_font() {
|
|
local font_file="$1"
|
|
local output_prefix="$2"
|
|
shift 2
|
|
|
|
for size in "$@"; do
|
|
"${FONT_TOOL}" \
|
|
--output "${SCRIPT_DIR}/${output_prefix}-${size}.pf2" \
|
|
--size "${size}" \
|
|
"${font_file}"
|
|
done
|
|
}
|
|
|
|
usage() {
|
|
printf 'Usage: %s [FONT_FILE OUTPUT_PREFIX [SIZE ...]]\n' "$(basename "$0")" >&2
|
|
printf 'Without arguments, regenerate the bundled DejaVu Sans and Unifont files.\n' >&2
|
|
}
|
|
|
|
if (( $# == 0 )); then
|
|
generate_font "${SCRIPT_DIR}/DejaVuSans.ttf" dejavu_sans 12 14 16 24 32 48
|
|
generate_font "${SCRIPT_DIR}/unifont.otf" unifont 16 24 32
|
|
elif (( $# >= 2 )); then
|
|
font_file="$1"
|
|
output_prefix="$2"
|
|
shift 2
|
|
if (( $# == 0 )); then
|
|
set -- 16 24 32
|
|
fi
|
|
generate_font "${font_file}" "${output_prefix}" "$@"
|
|
else
|
|
usage
|
|
exit 2
|
|
fi
|