Pārlūkot izejas kodu

Deploy scripts with stow

Bryan Roessler 3 dienas atpakaļ
vecāks
revīzija
9c0ade560c
29 mainītis faili ar 62 papildinājumiem un 64 dzēšanām
  1. 0 47
      scripts/script-deploy-manual
  2. 0 17
      scripts/script-deploy-scripts
  3. 2 0
      stow/README
  4. 0 0
      stow/config/etc/dconf/db/local.d/99-hartmanlab
  5. 0 0
      stow/config/etc/dconf/db/local.d/locks/99-hartmanlab
  6. 0 0
      stow/config/etc/fail2ban/jail.local
  7. 0 0
      stow/config/etc/fstab
  8. 0 0
      stow/config/etc/samba/smb.conf
  9. 0 0
      stow/config/etc/ssh/sshd_config
  10. 0 0
      stow/config/usr/local/share/glib-2.0/schemas/50-tweaks.gschema.override
  11. 0 0
      stow/config/usr/local/share/mate-panel/layouts/hartmanlab.layout
  12. 0 0
      stow/config/usr/local/share/smartmontools/smartd_warning.d/99-smartd-notify-all
  13. 3 0
      stow/deploy
  14. 0 0
      stow/scripts/usr/local/bin/README.md
  15. 57 0
      stow/scripts/usr/local/bin/script-deploy-manual
  16. 0 0
      stow/scripts/usr/local/bin/script-drives-fix-btrfs-full
  17. 0 0
      stow/scripts/usr/local/bin/script-files-permissions-reset
  18. 0 0
      stow/scripts/usr/local/bin/script-files-permissions-set
  19. 0 0
      stow/scripts/usr/local/bin/script-functions
  20. 0 0
      stow/scripts/usr/local/bin/script-install-btrfsmaintenance
  21. 0 0
      stow/scripts/usr/local/bin/script-install-motd
  22. 0 0
      stow/scripts/usr/local/bin/script-system-scheduled-restart
  23. 0 0
      stow/scripts/usr/local/bin/script-system-update
  24. 0 0
      stow/scripts/usr/local/bin/script-user-add
  25. 0 0
      stow/scripts/usr/local/bin/script-user-remove
  26. 0 0
      stow/scripts/usr/local/bin/script-user-reset-desktop
  27. 0 0
      stow/scripts/usr/local/bin/script-user-reset-password
  28. 0 0
      stow/scripts/usr/local/bin/script-user-reset-x2go
  29. 0 0
      stow/scripts/usr/local/bin/script-user-unban

+ 0 - 47
scripts/script-deploy-manual

@@ -1,47 +0,0 @@
-#!/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 [[ "$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

+ 0 - 17
scripts/script-deploy-scripts

@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-# Adds the scripts directory to the global PATH 
-# Copyright 2021-2025 Bryan C. Roessler
-# Licensed under the Apache License, Version 2.0
-p="${BASH_SOURCE[0]%/*}"; [[ -r $p/script-functions ]] && . "$p"/script-functions || exit 1
-
-script-deploy-scripts() {
-    local profile_file="/etc/profile.d/99-hartmanlab_server_scripts.sh"
-    echo "Adding $p to global PATH in $profile_file"
-    sudo bash -c "echo 'export PATH=\"\$PATH:$p\"' > '$profile_file'"
-}
-
-# Allow script to be safely sourced
-if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
-	script-deploy-scripts
-	exit
-fi

+ 2 - 0
stow/README

@@ -0,0 +1,2 @@
+To deploy everything (from this dir): `sudo stow -t / config scripts`
+To only deploy scripts: `sudo stow -t / scripts`

+ 0 - 0
stow/etc/dconf/db/local.d/99-hartmanlab → stow/config/etc/dconf/db/local.d/99-hartmanlab


+ 0 - 0
stow/etc/dconf/db/local.d/locks/99-hartmanlab → stow/config/etc/dconf/db/local.d/locks/99-hartmanlab


+ 0 - 0
stow/etc/fail2ban/jail.local → stow/config/etc/fail2ban/jail.local


+ 0 - 0
stow/etc/fstab → stow/config/etc/fstab


+ 0 - 0
stow/etc/samba/smb.conf → stow/config/etc/samba/smb.conf


+ 0 - 0
stow/etc/ssh/sshd_config → stow/config/etc/ssh/sshd_config


+ 0 - 0
stow/usr/share/glib-2.0/schemas/50-tweaks.gschema.override → stow/config/usr/local/share/glib-2.0/schemas/50-tweaks.gschema.override


+ 0 - 0
stow/usr/share/mate-panel/layouts/hartmanlab.layout → stow/config/usr/local/share/mate-panel/layouts/hartmanlab.layout


+ 0 - 0
stow/usr/share/smartmontools/smartd_warning.d/99-smartd-notify-all → stow/config/usr/local/share/smartmontools/smartd_warning.d/99-smartd-notify-all


+ 3 - 0
stow/deploy

@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+sudo stow -t / usr etc

+ 0 - 0
scripts/README.md → stow/scripts/usr/local/bin/README.md


+ 57 - 0
stow/scripts/usr/local/bin/script-deploy-manual

@@ -0,0 +1,57 @@
+#!/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

+ 0 - 0
scripts/script-drives-fix-btrfs-full → stow/scripts/usr/local/bin/script-drives-fix-btrfs-full


+ 0 - 0
scripts/script-files-permissions-reset → stow/scripts/usr/local/bin/script-files-permissions-reset


+ 0 - 0
scripts/script-files-permissions-set → stow/scripts/usr/local/bin/script-files-permissions-set


+ 0 - 0
scripts/script-functions → stow/scripts/usr/local/bin/script-functions


+ 0 - 0
scripts/script-install-btrfsmaintenance → stow/scripts/usr/local/bin/script-install-btrfsmaintenance


+ 0 - 0
scripts/script-install-motd → stow/scripts/usr/local/bin/script-install-motd


+ 0 - 0
scripts/script-system-scheduled-restart → stow/scripts/usr/local/bin/script-system-scheduled-restart


+ 0 - 0
scripts/script-system-update → stow/scripts/usr/local/bin/script-system-update


+ 0 - 0
scripts/script-user-add → stow/scripts/usr/local/bin/script-user-add


+ 0 - 0
scripts/script-user-remove → stow/scripts/usr/local/bin/script-user-remove


+ 0 - 0
scripts/script-user-reset-desktop → stow/scripts/usr/local/bin/script-user-reset-desktop


+ 0 - 0
scripts/script-user-reset-password → stow/scripts/usr/local/bin/script-user-reset-password


+ 0 - 0
scripts/script-user-reset-x2go → stow/scripts/usr/local/bin/script-user-reset-x2go


+ 0 - 0
scripts/script-user-unban → stow/scripts/usr/local/bin/script-user-unban