autofox

browser auto-configuration
git clone https://git.awy.one/autofox
Log | Files | Refs | README

configure_icecat.sh (1484B) - 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
#!/usr/bin/env bash

create_profile() {
  rm -rfv "${HOME}/.mozilla"
  icecat --headless >"/dev/null" 2>&1 &
  sleep "3"

  killall "icecat"

  icecat -CreateProfile personal --headless >"/dev/null" 2>&1 &
  sleep "3"
  killall "icecat"
}

create_profile

ICECAT_CONFIG_DIR="${HOME}/.mozilla/icecat"
ICECAT_PROF_NAME="$(sed -n 's/^Path=\(.*\.default\)$/\1/p' \
  "${ICECAT_CONFIG_DIR}/profiles.ini")"
ICECAT_PROF_DIR="$ICECAT_CONFIG_DIR/$ICECAT_PROF_NAME"

ICECAT_PERSONAL_PROF_NAME="$(sed -n 's/^Path=\(.*\.personal\)$/\1/p' \
  "${ICECAT_CONFIG_DIR}/profiles.ini")"
ICECAT_PERSONAL_PROF_DIR="$ICECAT_CONFIG_DIR/$ICECAT_PERSONAL_PROF_NAME"

mkdir -pv "${ICECAT_PROF_DIR}/chrome"
mkdir -pv "${ICECAT_PERSONAL_PROF_DIR}/chrome"

cp userChrome.css userContent.css "${ICECAT_PROF_DIR}/chrome"
cp userChrome.css userContent.css "${ICECAT_PERSONAL_PROF_DIR}/chrome"

install_extensions() {
  EXT_DIR="${ICECAT_PERSONAL_PROF_DIR}/extensions"
  mkdir -pv "${EXT_DIR}"

  ADDON_NAMES=("violentmonkey" "sponsorblock")

  for ADDON_NAME in "${ADDON_NAMES[@]}"; do
    ADDON_URL="$(curl -fSk "https://addons.mozilla.org/en-US/firefox/addon/${ADDON_NAME}/" |
      grep -o 'https://addons.mozilla.org/firefox/downloads/file/[^"]*')"

    curl -fSLk "${ADDON_URL}" -o "extension.xpi"

    EXT_ID="$(unzip -p "extension.xpi" "manifest.json" | grep "\"id\"")"
    EXT_ID="${EXT_ID%\"*}"
    EXT_ID="${EXT_ID##*\"}"

    mv -fv "extension.xpi" "${EXT_DIR}/${EXT_ID}.xpi"
  done
}

install_extensions