Samba shares, host file updates

This commit is contained in:
dev
2026-03-07 22:24:24 +00:00
parent 292e7e98bc
commit e8d324e89d
8 changed files with 118 additions and 0 deletions

1
.zshrc Normal file
View File

@@ -0,0 +1 @@
# Created by newuser for 5.9

View File

@@ -0,0 +1 @@
<?php phpinfo(); ?>

8
helpers/dev-sites.path Normal file
View File

@@ -0,0 +1,8 @@
[Unit]
Description=Watch for new dev sites
[Path]
PathModified=/var/www
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,6 @@
[Unit]
Description=Update hosts entries for dev sites
[Service]
Type=oneshot
ExecStart=/usr/local/bin/update-dev-hosts.sh

56
helpers/gen-wpcontent-shares Executable file
View File

@@ -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 <<SHARE
[${site}]
comment = WordPress wp-content for ${site}
path = ${wpContent}
browseable = yes
writable = yes
read only = no
guest ok = no
; Lock access down to a group
valid users = @${sambaGroup}
; Keep permissions sane for webserver + devs
force group = ${forceGroup}
create mask = 0664
directory mask = 2775
; Optional: reduce Finder/Windows junk
veto files = /Thumbs.db/.DS_Store/._.DS_Store/
SHARE
fi
done
} > "${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

View File

@@ -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

View File

@@ -0,0 +1,6 @@
[Unit]
Description=Generate Samba shares for WordPress wp-content folders
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/gen-wpcontent-shares

View File

@@ -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"