#!/usr/bin/env bash # This script installs the Hartman Lab Server Manual to each user's desktop # Usage: script-deploy-manual USERNAME|--all # Copyright 2021-2025 Bryan C. Roessler # Licensed under the Apache License, Version 2.0 script-deploy-manual() { local user_arg="$1" local manual_url="https://docs.google.com/document/d/1K_KwAlv8Zljmy-enwmhT6gMTFutlAFglixvpLGBx0VY" local remove=("manual.pdf" "manual.odt" "Notes.pdf" "Notes.odt" \ "README.html" "Link to Manual.desktop" "manual-images" \ "manual.html" "Manual.desktop" "manual.desktop") local users=() if [[ -z "$user_arg" || "$user_arg" == "--help" ]]; then cat <<-EOF Usage: script-deploy-manual USERNAME|--all USERNAME: Specify a single user's name. --all: Deploy the manual to all users with a Desktop directory. EOF return 1 fi if [[ "$user_arg" == "--all" ]]; then for d in /home/*; do [[ -d $d ]] && users+=("${d##*/}"); done else users+=("$user_arg") fi for user in "${users[@]}"; do desktop="/home/$user/Desktop" [[ -d $desktop ]] || continue echo "Scanning $desktop for old manuals" for f in "${remove[@]}"; do if [[ -e $desktop/$f || -L $desktop/$f ]]; then echo "Removing $desktop/$f" rm -f "${desktop:?}/$f" fi done echo "Installing manual to $desktop/manual.desktop" cat <<-EOF > "$desktop/manual.desktop" [Desktop Entry] Encoding=UTF-8 Name=Hartman Lab Server Manual Type=Link URL=$manual_url Icon=text-html EOF done } # Allow script to be safely sourced if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then script-deploy-manual "$@" exit $? fi