d / setup_ubuntu.sh
pabla1322's picture
Upload 14 files
e5de808 verified
Raw
History Blame Contribute Delete
3.57 kB
#!/bin/bash
# ============================================================
# setup_ubuntu.sh – Configure ubuntu user environment
# Symlinks home dirs to /data so they persist across restarts
# ============================================================
set -euo pipefail
log() { echo "[UBUNTU] $*"; }
export HOME=/data/home
export USER=ubuntu
# ── Symlink Downloads β†’ /data/downloads ─────────────────────
DOWNLOADS_LINK=/data/home/Downloads
if [ -d "$DOWNLOADS_LINK" ] && [ ! -L "$DOWNLOADS_LINK" ]; then
# First run: real dir exists – migrate contents and replace with symlink
cp -rn "$DOWNLOADS_LINK/." /data/downloads/ 2>/dev/null || true
rm -rf "$DOWNLOADS_LINK"
fi
if [ ! -L "$DOWNLOADS_LINK" ]; then
ln -sf /data/downloads "$DOWNLOADS_LINK"
log "Symlinked Downloads β†’ /data/downloads"
fi
# ── Symlink Firefox profile β†’ /data/firefox ──────────────────
FIREFOX_DIR=/data/home/.mozilla/firefox
if [ -d "$FIREFOX_DIR" ] && [ ! -L "$FIREFOX_DIR" ]; then
cp -rn "$FIREFOX_DIR/." /data/firefox/ 2>/dev/null || true
rm -rf "$FIREFOX_DIR"
fi
if [ ! -L "$FIREFOX_DIR" ]; then
ln -sf /data/firefox "$FIREFOX_DIR"
log "Symlinked Firefox profile β†’ /data/firefox"
fi
# ── XFCE config ───────────────────────────────────────────────
mkdir -p /data/home/.config/xfce4
if [ ! -L /data/home/.config/xfce4 ]; then
log "XFCE config dir ready at /data/home/.config/xfce4"
fi
# ── XDG runtime dir ───────────────────────────────────────────
mkdir -p /tmp/runtime-ubuntu
chown ubuntu:ubuntu /tmp/runtime-ubuntu
chmod 700 /tmp/runtime-ubuntu
# ── .bashrc / .profile ───────────────────────────────────────
if [ ! -f /data/home/.bashrc ]; then
cat > /data/home/.bashrc << 'EOF'
# Ubuntu PRoot-style environment on Hugging Face Space
export HOME=/data/home
export WORKSPACE=/data/workspace
export PS1='\[\033[01;32m\]ubuntu@hf-space\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
alias ll='ls -alF'
alias la='ls -A'
alias workspace='cd /data/workspace'
echo "Welcome to your Ubuntu Desktop on Hugging Face Spaces!"
echo "Workspace: /data/workspace | Home: /data/home"
EOF
log "Created .bashrc"
fi
# ── Desktop shortcut: Workspace folder ────────────────────────
DESKTOP_DIR=/data/home/Desktop
cat > "$DESKTOP_DIR/workspace.desktop" << 'EOF'
[Desktop Entry]
Version=1.0
Type=Application
Name=Workspace
Comment=Open persistent workspace folder
Exec=thunar /data/workspace
Icon=folder-documents
Terminal=false
Categories=Utility;
EOF
chmod +x "$DESKTOP_DIR/workspace.desktop"
# ── Desktop shortcut: Terminal ────────────────────────────────
cat > "$DESKTOP_DIR/terminal.desktop" << 'EOF'
[Desktop Entry]
Version=1.0
Type=Application
Name=Terminal
Comment=Open XFCE Terminal
Exec=xfce4-terminal
Icon=utilities-terminal
Terminal=false
Categories=System;TerminalEmulator;
EOF
chmod +x "$DESKTOP_DIR/terminal.desktop"
# ── Final ownership ───────────────────────────────────────────
chown -R ubuntu:ubuntu /data/home
log "Ubuntu user environment ready."