ffsetup

Repositório ffsetup
git clone git://git.sivaldodavi.com/ffsetup.git
Log | Files | Refs | README | LICENSE

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."