#!/usr/bin/env bash
# Garante os diretórios que o PHP-FPM precisa gravar em runtime.
#
# O deploy SSH e o pool do PHP quase sempre são usuários diferentes.
# chmod só ug+rwx não basta: o PHP fica de fora do grupo, o Blade chama
# tempnam() em storage/framework/views, o PHP 8.4 cai no /tmp e explode com
# "tempnam(): file created in the system's temporary directory".
#
# Dono e grupo (deployer:deployer) o usuário de deploy não consegue mudar:
# não tem sudo. Isso se resolve no servidor, uma vez, fazendo o PHP-FPM
# rodar no mesmo usuário do deploy — não neste script.
set -euo pipefail

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"

mkdir -p \
  storage/app/public \
  storage/app/private \
  storage/framework/sessions \
  storage/framework/views \
  storage/framework/cache/data \
  storage/framework/testing \
  storage/logs \
  bootstrap/cache

# Só cache/views/logs/sessions — não abrir escrita mundial em uploads privados.
# Sem sudo, chmod só vale no que este usuário já dono; o resto ignora.
chmod -R a+rwX \
  storage/framework \
  storage/logs \
  bootstrap/cache \
  2>/dev/null || true

# Uploads: dono e grupo escrevem; others só leem o necessário.
chmod -R ug+rwX,o+rX storage/app \
  2>/dev/null || true
