Files
hartman-server/stow/scripts/usr/local/bin/script-deploy-manual

57 lines
1.6 KiB
Bash
Executable File

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