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