#!/usr/bin/env bash
# Desktop taskserv preparation script
set -euo pipefail
log() {
echo "[$(date +'%Y-%m-%d %H:%M:%S')] PREPARE: $1"
}
# Create desktop user home directory structure
prepare_user_directories() {
local desktop_user="${DESKTOP_USER:-desktop}"
local desktop_home="${DESKTOP_HOME:-/home/$desktop_user}"
log "Preparing directories for user $desktop_user"
# Create standard user directories
mkdir -p "$desktop_home"/{Desktop,Documents,Downloads,Pictures,Videos,Music}
mkdir -p "$desktop_home"/.config
mkdir -p "$desktop_home"/.local/{bin,share}
# Set proper ownership if user exists
if id "$desktop_user" &>/dev/null; then
chown -R "$desktop_user:$desktop_user" "$desktop_home"
fi
}
# Download application assets
download_assets() {
log "Downloading application assets..."
# Create assets directory
mkdir -p /tmp/desktop-assets
# Download Zed editor GPG key for verification
if command -v curl >/dev/null 2>&1; then
curl -fsSL https://zed.dev/install.sh > /tmp/desktop-assets/zed-install.sh
chmod +x /tmp/desktop-assets/zed-install.sh
fi
}
# Prepare configuration templates
prepare_configs() {
log "Preparing configuration templates..."
# Create XFCE configuration template
mkdir -p /tmp/desktop-configs/xfce4
cat > /tmp/desktop-configs/xfce4/desktop.xml << 'EOF'