| #!/bin/bash | |
| # Copyright 2021 The ChromiumOS Authors | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| export WWCB_ROOT="/usr/local/opt/wwcb_mfp" | |
| export PATH="${WWCB_ROOT}/usr/bin:${WWCB_ROOT}/usr/local/bin:${PATH}" | |
| export MAGICK_CONFIGURE_PATH="${WWCB_ROOT}/usr/local/etc/ImageMagick-7" | |
| export MAGICK_CODER_MODULE_PATH="${WWCB_ROOT}/usr/local/lib64/ImageMagick-7/modules-Q16/coders" | |
| export MAGICK_FILTER_MODULE_PATH="${WWCB_ROOT}/usr/local/lib64/ImageMagick-7/modules-Q16/filters" | |
| export MFP_NAME="" | |
| export MFP_DEV_LIST="" | |
| export MFP_DEV="" | |
| PS1='\nTest device: ${MFP_NAME:-None selected}' | |
| PS1+='\nDevice path: ${MFP_DEV:-** missing **}' | |
| PS1+='\n(wwcb_mfp_test) \[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] ' | |
| export PS1 | |
| set_wwcb_mfp_name() { | |
| MFP_NAME="$1" | |
| MFP_DEV_LIST="" | |
| [[ -z "${MFP_NAME}" ]] && return | |
| MFP_DEV_LIST="$(lorgnette_cli list 2>/dev/null | \ | |
| sed -ne '/^Detected scanners:/,$p' | grep -F "${MFP_NAME}")" | |
| set_wwcb_mfp_connection_type net | |
| } | |
| export -f set_wwcb_mfp_name | |
| set_wwcb_mfp_connection_type() { | |
| if [[ -z "${MFP_NAME}" ]] || [[ -z "${MFP_DEV_LIST}" ]]; then | |
| echo "Call set_mfp_name first" | |
| return | |
| fi | |
| case "$1" in | |
| usb) | |
| MFP_DEV="$(grep "^ippusb:escl:" <<<"${MFP_DEV_LIST}")" | |
| ;; | |
| net|https) | |
| MFP_DEV="$(grep "^airscan:escl:.*:https://" <<<"${MFP_DEV_LIST}")" | |
| ;; | |
| http) | |
| MFP_DEV="$(grep "^airscan:escl:.*:http://" <<<"${MFP_DEV_LIST}")" | |
| ;; | |
| esac | |
| if [[ -z "${MFP_DEV}" ]]; then | |
| echo "No device type $1 found for ${MFP_NAME}" | |
| fi | |
| } | |
| export -f set_wwcb_mfp_connection_type | |
| pick_wwcb_mfp_dev() { | |
| echo "Looking for devices" | |
| mapfile -t MFP_LIST < <(lorgnette_cli list 2>/dev/null | \ | |
| sed -ne '/^Detected scanners:/,$p' | \ | |
| grep -o "escl:[^:]*" | sed -e 's/^escl://' | \ | |
| sed -e 's/[[:space:]]\[[a-fA-F0-9]*\]$//' | \ | |
| sort | uniq) | |
| select MFP_NAME in "${MFP_LIST[@]}"; do | |
| [[ -n "${MFP_NAME}" ]] && break | |
| done | |
| set_wwcb_mfp_name "${MFP_NAME}" | |
| } | |
| export -f pick_wwcb_mfp_dev | |
| pick_wwcb_mfp_dev | |
| exec /bin/bash --norc -i |