#!/usr/bin/env sh set -eu BASE_URL="${FIELDLENS_DOWNLOAD_BASE_URL:-https://git.arrowstack.dev/Admin/fieldlens-desktop/raw/branch/main/downloads}" PACKAGE="fieldlens-print-linux-x64.deb" EXPECTED_SHA256="a95768acd7084bdc1a50ff5f72e4a69ffc4f9821fc51e13e54e76c7abb57ab84" say() { printf '%s\n' "$*" } fail() { printf 'FieldLens Print installer: %s\n' "$*" >&2 exit 1 } case "$(uname -m)" in x86_64|amd64) ;; *) fail "this installer currently supports x86_64/amd64 Linux only" ;; esac command -v sha256sum >/dev/null 2>&1 || fail "sha256sum is required" tmpdir="$(mktemp -d 2>/dev/null || mktemp -d -t fieldlens-print)" trap 'rm -rf "$tmpdir"' EXIT HUP INT TERM package_path="$tmpdir/$PACKAGE" package_url="$BASE_URL/$PACKAGE" say "Downloading FieldLens Print..." if command -v curl >/dev/null 2>&1; then curl -fL --retry 3 --retry-delay 1 -o "$package_path" "$package_url" elif command -v wget >/dev/null 2>&1; then wget -O "$package_path" "$package_url" else fail "curl or wget is required" fi actual_sha256="$(sha256sum "$package_path" | awk '{print $1}')" if [ "$actual_sha256" != "$EXPECTED_SHA256" ]; then fail "checksum verification failed" fi say "Checksum verified." if [ "$(id -u)" -eq 0 ]; then sudo_cmd="" elif command -v sudo >/dev/null 2>&1; then sudo_cmd="sudo" else fail "root access or sudo is required to install the package" fi if command -v apt-get >/dev/null 2>&1; then say "Installing CUPS printer tools..." $sudo_cmd apt-get update $sudo_cmd apt-get install -y cups-client policykit-1 || $sudo_cmd apt-get install -y cups-client say "Installing FieldLens Print..." $sudo_cmd apt-get install -y "$package_path" elif command -v apt >/dev/null 2>&1; then say "Installing CUPS printer tools..." $sudo_cmd apt update $sudo_cmd apt install -y cups-client policykit-1 || $sudo_cmd apt install -y cups-client say "Installing FieldLens Print..." $sudo_cmd apt install -y "$package_path" elif command -v dpkg >/dev/null 2>&1; then say "Installing FieldLens Print..." $sudo_cmd dpkg -i "$package_path" else fail "this installer currently supports Debian/Ubuntu-style systems" fi say "FieldLens Print installed successfully."