diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..c66d3da --- /dev/null +++ b/.zshrc @@ -0,0 +1 @@ +# Created by newuser for 5.9 diff --git a/dev-panel.vincentdevelopment.ca/htdocs/info.php b/dev-panel.vincentdevelopment.ca/htdocs/info.php new file mode 100644 index 0000000..147cebc --- /dev/null +++ b/dev-panel.vincentdevelopment.ca/htdocs/info.php @@ -0,0 +1 @@ + diff --git a/helpers/dev-sites.path b/helpers/dev-sites.path new file mode 100644 index 0000000..199384e --- /dev/null +++ b/helpers/dev-sites.path @@ -0,0 +1,8 @@ +[Unit] +Description=Watch for new dev sites + +[Path] +PathModified=/var/www + +[Install] +WantedBy=multi-user.target diff --git a/helpers/dev-sites.service b/helpers/dev-sites.service new file mode 100644 index 0000000..778cef8 --- /dev/null +++ b/helpers/dev-sites.service @@ -0,0 +1,6 @@ +[Unit] +Description=Update hosts entries for dev sites + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/update-dev-hosts.sh diff --git a/helpers/gen-wpcontent-shares b/helpers/gen-wpcontent-shares new file mode 100755 index 0000000..ec88094 --- /dev/null +++ b/helpers/gen-wpcontent-shares @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +set -euo pipefail + +wwwRoot="/var/www" +outFile="/etc/samba/wordops-wpcontent-shares.conf" +tmpFile="$(mktemp)" + +# Change these to match your world: +sambaGroup="dev" # group allowed to access shares +forceGroup="dev" # group to force on created files (optional) + +{ + echo "; AUTO-GENERATED FILE - DO NOT EDIT" + echo "; Generated: $(date -Is)" + echo + + shopt -s nullglob + for siteDir in "${wwwRoot}"/*; do + site="$(basename "${siteDir}")" + wpContent="${wwwRoot}/${site}/htdocs/wp-content" + + # Only create shares for sites that look like WP installs + if [[ -d "${wpContent}" ]]; then + cat < "${tmpFile}" + +# Basic sanity check: refuse to install a broken file +testparm -s "${tmpFile}" >/dev/null + +sudo mv "${tmpFile}" "${outFile}" +sudo chmod 0644 "${outFile}" + +# Reload Samba to pick up new shares (no disconnect like restart) +sudo systemctl reload smbd || sudo systemctl reload samba diff --git a/helpers/gen-wpcontent-shares.path b/helpers/gen-wpcontent-shares.path new file mode 100644 index 0000000..cc7972a --- /dev/null +++ b/helpers/gen-wpcontent-shares.path @@ -0,0 +1,9 @@ +[Unit] +Description=Watch /var/www and regenerate Samba shares on change + +[Path] +PathChanged=/var/www +PathModified=/var/www + +[Install] +WantedBy=multi-user.target diff --git a/helpers/gen-wpcontent-shares.service b/helpers/gen-wpcontent-shares.service new file mode 100644 index 0000000..cfcb42b --- /dev/null +++ b/helpers/gen-wpcontent-shares.service @@ -0,0 +1,6 @@ +[Unit] +Description=Generate Samba shares for WordPress wp-content folders + +[Service] +Type=oneshot +ExecStart=/usr/local/sbin/gen-wpcontent-shares diff --git a/helpers/update-dev-hosts.sh b/helpers/update-dev-hosts.sh new file mode 100644 index 0000000..db27408 --- /dev/null +++ b/helpers/update-dev-hosts.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +HOSTS_FILE="/etc/hosts" +SITES_DIR="/var/www" +DEV_DOMAIN="vincentdevelopment.ca" + +TMP=$(mktemp) + +echo "# BEGIN DEV-SITES" >> "$TMP" + +for dir in "$SITES_DIR"/*; do + site=$(basename "$dir") + + # Skip system dirs + [[ "$site" == "html" ]] && continue + + echo "127.0.0.1 $site" >> "$TMP" + + # Uncomment when system goes live + # echo "127.0.0.1 $site $site.$DEV_DOMAIN" +done + +echo "# END DEV-SITES" >> "$TMP" + +# Remove existing block +sed -i '/# BEGIN DEV-SITES/,/# END DEV-SITES/d' "$HOSTS_FILE" + +# Append fresh block +cat "$TMP" >> "$HOSTS_FILE" + +rm "$TMP"