| #!/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 |