blob: ed6740118992fdbf4cab6a98e3da18ebaee8ba8b [file] [log] [blame]
#!/bin/bash
# Copyright 2021 The Chromium OS Authors. All rights reserved.
# 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