ffsetup.sh (2590B)
1 #!/bin/sh 2 3 # ffsetup — Firefox Setup Script 4 # Fork pessoal de ~bpv/ffsetup (https://git.sr.ht/~bpv/ffsetup) 5 # Repo: https://codeberg.org/sivaldodavi/ffsetup 6 7 BASE_URL="https://codeberg.org/sivaldodavi/ffsetup/raw/branch/master" 8 9 # Se o script for rodado de dentro do diretório clonado, usa arquivos locais 10 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" 11 12 die() { 13 printf "%s\n" "$1" >&2 14 exit 1 15 } 16 17 [ "$(id -u)" -eq 0 ] && die "Não rode como root!" 18 19 if which firefox >/dev/null 2>&1; then 20 ff=firefox 21 elif which firefox-esr >/dev/null 2>&1; then 22 ff=firefox-esr 23 else 24 die "Firefox não encontrado!" 25 fi 26 27 echo "ffsetup — configurando Firefox..." 28 printf "\nIniciando Firefox para gerar perfil...\n" 29 30 $ff --headless >/dev/null 2>&1 & 31 sleep 3 32 pkill "$ff" 33 34 # Localizar diretório de perfil 35 ffdir="${XDG_CONFIG_HOME:-$HOME/.config}/mozilla/firefox" 36 [ -d "$ffdir" ] || ffdir="$HOME/.mozilla/firefox" 37 38 profile="$ffdir/$(grep "Default=.*\.default-.*$" "$ffdir/profiles.ini" | sed "s/Default=//")" 39 [ ! -d "$profile" ] && die "Não foi possível encontrar o perfil do Firefox" 40 41 # Instalar Arkenfox user.js 42 echo "Instalando Arkenfox user.js..." 43 curl -sL "https://raw.githubusercontent.com/arkenfox/user.js/master/user.js" > "$profile/user.js" \ 44 || die "Falha ao baixar Arkenfox" 45 46 # Adicionar extra.js — usa arquivo local se disponível, senão baixa 47 echo "Adicionando extra.js..." 48 if [ -f "$SCRIPT_DIR/extra.js" ]; then 49 cat "$SCRIPT_DIR/extra.js" >> "$profile/user.js" 50 else 51 curl -sL "$BASE_URL/extra.js" >> "$profile/user.js" \ 52 || die "Falha ao baixar extra.js" 53 fi 54 55 # Instalar userChrome.css — usa local se disponível, senão baixa 56 echo "Instalando userChrome.css..." 57 mkdir -p "$profile/chrome" 58 if [ -f "$SCRIPT_DIR/chrome/userChrome.css" ]; then 59 cp "$SCRIPT_DIR/chrome/userChrome.css" "$profile/chrome/userChrome.css" 60 else 61 curl -sL "$BASE_URL/chrome/userChrome.css" > "$profile/chrome/userChrome.css" \ 62 || die "Falha ao baixar userChrome.css" 63 fi 64 65 # Instalar policies.json (requer senha de root) 66 echo "Instalando policies.json (extensões e políticas)..." 67 [ ! -d "/etc/firefox/policies" ] && su -c "mkdir -p /etc/firefox/policies" 68 echo "Senha necessária para instalar policies.json:" 69 if [ -f "$SCRIPT_DIR/policies.json" ]; then 70 su -c "cp \"$SCRIPT_DIR/policies.json\" /etc/firefox/policies/" 71 else 72 curl -sL "$BASE_URL/policies.json" -o /tmp/ffsetup-policies.json \ 73 || die "Falha ao baixar policies.json" 74 su -c "cp /tmp/ffsetup-policies.json /etc/firefox/policies/policies.json" 75 fi 76 77 echo "" 78 echo "Pronto! Reinicie o Firefox."