all repos — zion-terminal @ 14a43c5953a09c8073660d1d3e93af5218ee0ade

dotfiles

install.sh (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
#!/usr/bin/env bash
# ZION TERMINAL - instalador
# Copia o projeto para /opt, /usr/local/bin, /etc e liga os ganchos do shell.
# Idempotente: pode rodar de novo sem quebrar nada.
set -euo pipefail

DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
USER_HOME="${HOME}"
ME="$(id -un)"

say() { printf '\033[38;5;51m»Z»\033[0m %s\n' "$*"; }

[ "$(id -u)" -eq 0 ] && { echo "Rode como usuario normal (o script chama sudo quando precisa)."; exit 1; }

say "Instalando o ZION TERMINAL a partir de $DIR"

# --- /opt (nao apaga logs/backups existentes) ----------------------
sudo mkdir -p /opt/zion-terminal/{logs,backups}
sudo cp -a "$DIR/opt/zion-terminal/." /opt/zion-terminal/
sudo chown "$ME:$ME" /opt/zion-terminal/logs /opt/zion-terminal/backups
sudo chmod 755 /opt/zion-terminal/bin/* /opt/zion-terminal/lib/*.sh 2>/dev/null || true

# --- comando principal ---------------------------------------------
sudo install -m 755 "$DIR/bin/zion" /usr/local/bin/zion

# --- ganchos de sistema --------------------------------------------
sudo install -m 644 "$DIR"/etc/profile.d/*.sh /etc/profile.d/
sudo install -m 644 "$DIR"/etc/systemd/system/zion-collect.* /etc/systemd/system/

# --- dados locais (nao versionados) --------------------------------
[ -f /opt/zion-terminal/config/ssh-favoritos.conf ] || { sudo touch /opt/zion-terminal/config/ssh-favoritos.conf; sudo chown "$ME:$ME" /opt/zion-terminal/config/ssh-favoritos.conf; }
printf 'DATA_CONFIG=%s\n' "$(date '+%Y-%m-%d %H:%M %Z')" | sudo tee /opt/zion-terminal/config/build-info.conf >/dev/null

# --- persistencia do tmux (resurrect) ------------------------------
if [ ! -d /opt/zion-terminal/assets/tmux-resurrect ]; then
  say "Clonando tmux-resurrect"
  sudo git clone --depth 1 https://github.com/tmux-plugins/tmux-resurrect \
    /opt/zion-terminal/assets/tmux-resurrect >/dev/null 2>&1 || echo "  (aviso: tmux-resurrect nao clonado)"
fi

# --- ganchos no home -----------------------------------------------
grep -q 'bashrc-zion.sh' "$USER_HOME/.bashrc" 2>/dev/null || \
  printf '\n# ZION TERMINAL\n[ -r /opt/zion-terminal/config/bashrc-zion.sh ] && . /opt/zion-terminal/config/bashrc-zion.sh\n' >> "$USER_HOME/.bashrc"

# .tmux.conf aponta para a config versionada (fonte unica)
if [ ! -e "$USER_HOME/.tmux.conf" ] || ! grep -q 'zion-terminal' "$USER_HOME/.tmux.conf" 2>/dev/null; then
  echo 'source-file /opt/zion-terminal/config/tmux.conf' > "$USER_HOME/.tmux.conf"
fi

# auto-resume do tmux no console local (opcional, opt-out ~/.zion-sem-tmux)
if ! grep -q 'auto-resume' "$USER_HOME/.bash_profile" 2>/dev/null; then
  cat >> "$USER_HOME/.bash_profile" <<'EOF'

# ZION TERMINAL - auto-resume da sessao tmux (so console local; desative: touch ~/.zion-sem-tmux)
if [ -z "$SSH_CONNECTION" ] && [ -z "$TMUX" ] && [ -t 1 ] && [ ! -e "$HOME/.zion-sem-tmux" ] && command -v tmux >/dev/null; then
  case "$(tty)" in /dev/tty[0-9]*) exec tmux new-session -A -s zion ;; esac
fi
[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"
EOF
fi

# --- servico de coleta ---------------------------------------------
sudo systemctl daemon-reload
sudo systemctl enable --now zion-collect.timer >/dev/null 2>&1 || true

# --- tema do tmux ---------------------------------------------------
[ -f "$USER_HOME/.zion-tema" ] || echo 'ZION_TEMA=ice' > "$USER_HOME/.zion-tema"
/opt/zion-terminal/bin/zion-tmux-theme -q >/dev/null 2>&1 || true

say "Pronto. Abra uma nova sessao ou rode: source ~/.bashrc"
say "Comandos: zion  ·  zion doctor  ·  zion --help"