update scripts

This commit is contained in:
2026-04-14 09:22:55 -07:00
parent 52999f4799
commit a665473903
4 changed files with 55 additions and 14 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ step_attach_ch341a() {
echo ""
# Show reference image (cached locally, rendered inline if possible)
show_image "spi_flasher_assembly.png" "Reference: CH341A + SOIC-8 clip assembly"
show_image "spi_flasher_assembly.webp" "Reference: CH341A + SOIC-8 clip assembly"
echo ""
prompt_continue
+6 -6
View File
@@ -46,15 +46,13 @@ step_extract_bios() {
info "Each chip is read twice so we can diff the results and catch flaky reads."
echo ""
# Show reference image for chip locations
show_image "eeprom_chips_location.png" "Reference: EEPROM chip locations on T440p mainboard"
echo ""
cd "$WORK_DIR" || return 1
# --- 4MB chip (do first: smaller = faster iteration on setup) ---
echo ""
info "Clip the CH341A onto the ${BOLD}4MB (top)${NC} chip."
show_image "eeprom_chip_4mb.webp" "Reference: 4MB (top) chip location on T440p"
echo ""
info "Clip the CH341A onto the ${BOLD}4MB (top)${NC} chip shown above."
info "Align the red ribbon wire with the dot/notch on the chip (pin 1)."
prompt_continue
@@ -64,7 +62,9 @@ step_extract_bios() {
# --- 8MB chip ---
echo ""
info "Now move the clip to the ${BOLD}8MB (bottom)${NC} chip."
show_image "eeprom_chip_8mb.webp" "Reference: 8MB (bottom) chip location on T440p"
echo ""
info "Now move the clip to the ${BOLD}8MB (bottom)${NC} chip shown above."
info "Re-check pin 1 alignment before pressing down."
prompt_continue
+5 -5
View File
@@ -7,24 +7,24 @@ install_dependencies() {
case "$DISTRO" in
arch)
info "Installing packages via pacman..."
run_cmd "sudo pacman -S --needed base-devel curl git gcc-ada ncurses zlib nasm sharutils unzip flashrom usbutils chafa"
run_cmd "sudo pacman -S --needed base-devel curl git gcc-ada ncurses zlib nasm sharutils unzip flashrom usbutils chafa libwebp"
;;
debian)
info "Installing packages via apt..."
run_cmd "sudo apt update"
run_cmd "sudo apt install -y build-essential curl git gnat libncurses-dev zlib1g-dev nasm sharutils unzip flashrom usbutils chafa"
run_cmd "sudo apt install -y build-essential curl git gnat libncurses-dev zlib1g-dev nasm sharutils unzip flashrom usbutils chafa webp"
;;
fedora)
info "Installing packages via dnf..."
run_cmd "sudo dnf install -y @development-tools curl git gcc-gnat ncurses-devel zlib-devel nasm sharutils unzip flashrom usbutils chafa"
run_cmd "sudo dnf install -y @development-tools curl git gcc-gnat ncurses-devel zlib-devel nasm sharutils unzip flashrom usbutils chafa libwebp-tools"
;;
gentoo)
info "Installing packages via emerge..."
run_cmd "sudo emerge --ask sys-devel/base-devel net-misc/curl dev-vcs/git sys-devel/gcc ncurses dev-libs/zlib dev-lang/nasm app-arch/sharutils app-arch/unzip sys-apps/flashrom sys-apps/usbutils media-gfx/chafa"
run_cmd "sudo emerge --ask sys-devel/base-devel net-misc/curl dev-vcs/git sys-devel/gcc ncurses dev-libs/zlib dev-lang/nasm app-arch/sharutils app-arch/unzip sys-apps/flashrom sys-apps/usbutils media-gfx/chafa media-libs/libwebp"
;;
nix)
info "Installing packages via nix-env..."
run_cmd "nix-env -i stdenv curl git gcc gnat ncurses zlib nasm sharutils unzip flashrom usbutils chafa"
run_cmd "nix-env -i stdenv curl git gcc gnat ncurses zlib nasm sharutils unzip flashrom usbutils chafa libwebp"
;;
*)
warn "Could not detect your distribution."
+43 -2
View File
@@ -113,9 +113,36 @@ _render_image() {
return 1
}
# Transcode a webp file to png next to it. Echoes the png path on success.
_webp_to_png() {
_webp="$1"
_png="${_webp%.webp}.png"
[ -f "$_png" ] && { printf '%s' "$_png"; return 0; }
if check_command dwebp; then
dwebp "$_webp" -o "$_png" >/dev/null 2>&1 && {
printf '%s' "$_png"; return 0;
}
fi
if check_command magick; then
magick "$_webp" "$_png" >/dev/null 2>&1 && {
printf '%s' "$_png"; return 0;
}
fi
if check_command convert; then
convert "$_webp" "$_png" >/dev/null 2>&1 && {
printf '%s' "$_png"; return 0;
}
fi
return 1
}
# show_image <filename> [caption]
# Downloads $IMAGE_BASE_URL/<filename> into $WORK_DIR/.images/,
# renders inline if possible, otherwise prints the URL.
# If the image is webp and the renderer can't decode it, transcodes to png.
show_image() {
_name="$1"
_caption="$2"
@@ -134,15 +161,29 @@ show_image() {
fi
fi
# First attempt: render the file as-is.
if _render_image "$_local"; then
[ -n "$_caption" ] && printf " ${DIM}%s${NC}\n" "$_caption"
return 0
fi
# No renderer available
# Fallback: if webp, try to transcode to png and re-render.
case "$_name" in
*.webp)
_png=$(_webp_to_png "$_local")
if [ -n "$_png" ] && _render_image "$_png"; then
[ -n "$_caption" ] && printf " ${DIM}%s${NC}\n" "$_caption"
return 0
fi
;;
esac
# No renderer / transcode available — degrade to URL.
info "Reference image: $_url"
if ! check_command chafa; then
info "(Install 'chafa' for inline image previews: sudo pacman -S chafa)"
info "(Install 'chafa' for inline image previews)"
elif case "$_name" in *.webp) true ;; *) false ;; esac; then
info "(Install 'libwebp' (dwebp) or 'imagemagick' to preview webp inline)"
fi
[ -n "$_caption" ] && info "$_caption"
}