#!/bin/sh
#
# mozilla-firefox-default-profile.SlackBuild
# 2024-05-06
#
# Mozilla Firefox Default Profile

PRGNAM=mozilla-firefox-default-profile
VERSION=115.10.0esr

# automatically determine the architecture
if [ -z "$ARCH" ]; then
  case "$(uname -m)" in
    i?86) ARCH=i686 ;;
    x86_64) ARCH=x86_64 ;;
    *) exit 1
  esac
fi

BUILD=${BUILD:-1}
TAG=${TAG:-scr}
PKGTYPE=${PKGTYPE:-txz}

HOMEPAGE="https://www.mozilla.org/firefox/"

REQUIRES="mozilla-firefox"

MAINTAINER="Gernot Walzl"
EMAIL="gernot.walzl@gmx.at"

DESC="Mozilla Firefox Default Profile

${HOMEPAGE}"

DOCS="$(pwd)/$0"

# EOF info


# set initial variables
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

# exit on error
set -e

# set options
case "$ARCH" in
  i?86) LIBDIRSUFFIX="" ;;
  x86_64) LIBDIRSUFFIX="64" ;;
esac

# install everything into the package directory
rm -rf $PKG
mkdir -p $PKG/install

# https://support.mozilla.org/en-US/kb/customizing-firefox-using-autoconfig

mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/firefox/defaults/pref

cd $PKG/usr/lib$LIBDIRSUFFIX/firefox/defaults/pref || exit 1
cat > autoconfig.js <<EOF
pref("general.config.obscure_value", 0);
pref("general.config.filename", "firefox.cfg");
EOF

cd $PKG/usr/lib$LIBDIRSUFFIX/firefox || exit 1
cat > firefox.cfg <<EOF
// start page
defaultPref("browser.newtabpage.pinned", "[{\"url\":\"https://www.google.at/\",\"title\":\"Google\"}, {\"url\":\"http://at.search.yahoo.com/\",\"title\":\"Yahoo Suche\"}, {\"url\":\"https://duckduckgo.com/\",\"title\":\"DuckDuckGo\"}, {\"url\":\"http://www.openstreetmap.org/\",\"title\":\"OpenStreetMap\"}, {\"url\":\"https://de.wikipedia.org/\",\"title\":\"Wikipedia\"}]");
defaultPref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);
defaultPref("browser.newtabpage.activity-stream.telemetry", false);
defaultPref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
defaultPref("browser.newtabpage.activity-stream.feeds.telemetry", false);

// data reporting
defaultPref("datareporting.healthreport.uploadEnabled", false);
defaultPref("datareporting.policy.dataSubmissionEnabled", false);

// telemetry
defaultPref("toolkit.telemetry.archive.enabled", false);
defaultPref("toolkit.telemetry.bhrPing.enabled", false);

// 1 profile, 2 user, 4 application, 8 system
defaultPref("extensions.autoDisableScopes", 3);
EOF

# add documentation
if [ "$DOCS" != "" ]; then
  mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
  cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
  find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \;
fi

# add some description to the package
if [ "$DESC" != "" ]; then
  echo "$DESC" | sed 's/^/'$PRGNAM': /g' > $PKG/install/slack-desc
fi

# append dependency information to the package
if [ "$REQUIRES" != "" ]; then
  for REQ in $REQUIRES; do
    echo "$REQ" >> $PKG/install/slack-required
  done
fi

# fix permissions
cd $PKG
chown -R root:root .
chmod -R u+w,go+r-w,a-s .

# build the package
cd $PKG
PKGVERSION=$(echo $VERSION | sed 's/-/./g')
makepkg -l y -c n \
  $OUTPUT/$PRGNAM-$PKGVERSION-$ARCH-$BUILD$TAG.$PKGTYPE \
  || exit 1

# make everything clean
cd $CWD
rm -rf $PKG
