#!/bin/bash

# Copyright 2009-2010  Erik Hanson, Minneapolis, MN, USA
# Copyright 2011, 2015  Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Author: brokenman@porteus.org
# mangled by: ncmprhnsbl
# version: 20240509

# Source porteus functions
. /usr/share/porteus/porteus-functions
get_colors

# Check for root
if [ $(whoami) != "root" ]; then
	echo "Only root can run this."
	exit 1
fi

# functions set work directory(default is /tmp) to current work directory
set_tmp() {
WRKDIR=/tmp 
}

set_pwd() {
WRKDIR=$(pwd) 
}

# echo usage
show_help() {
	echo " options:  -d : do operations in the present directory, instead of /tmp . "
	echo "           -h        : show this usage. "
}
while getopts ":-d:-h:" o; do
case "$1" in
 
    -d)
       set_pwd;;
    
    -h)
      show_help
      exit 0;;
              
     *)
      show_help
      exit 1;;
    
esac
done
case "$1" in
      
    "")
      set_tmp;;
      
esac

# tell us where the work will be done
echo "Work will be done in: $txtgreen$WRKDIR$rst "
 
## Check if there's enough working space
check_space() {
[ $(df -l --output=avail $WRKDIR | tail -1) -lt 384000 ] && { red "There's not enough space to run this script"; exit 1; }
}

# Create variables
FFURL=http://download-installer.cdn.mozilla.net/pub/firefox/releases/
SERVER=$(awk -F= '/SERVER=/{print$NF}' /etc/porteus.conf)
TMPDIR=$WRKDIR/portff
PROFDIR="dxsqumip.default"
EXT=tar.xz
EXT2=tar.bz2
TARG=$TMPDIR/ff.$$
CWD=$(pwd)
LATVER1=$(lynx -dump --nonumbers --listonly $FFURL | grep -o "[0-9][0-9][0-9].*esr" | sort -V | tail -n1)
LAT1=$(lynx -dump --nonumbers --listonly $FFURL | grep -v '0b\|esr' | grep -o "[0-9][0-9][0-9].[0-9].[0-9]"  | sort -V  | tail -n1)
LAT2=$(lynx -dump --nonumbers --listonly $FFURL | grep -v '0b\|esr' | grep -o "[0-9][0-9][0-9].[0-9]" | sort -V  | tail -n1)
if (("${LAT2//.}0" > "${LAT1//.}")); then
	LATVER2="$LAT2"
else
	LATVER2="$LAT1"
fi
LATVER3=$(lynx -dump --nonumbers --listonly $FFURL | grep -o "[0-9][0-9][0-9].0b[0-9]" | sort -V | tail -n1)

case $(uname -m) in
	x86_64)
	ARCH=x86_64
	SUFFIX=64
	SARCH=x86_64
	;;
	*)
	ARCH=i686
	SUFFIX=
	SARCH=i586
	;;
esac

txtbld=$(tput bold)
txtred=${txtbld}$(tput setaf 1)
txtgreen=${txtbld}$(tput setaf 2)
txtwhite=${txtbld}$(tput setaf 7)
txtcyan=${txtbld}$(tput setaf 6)
rst=$(tput sgr0)
function bold(){ echo -e $txtbld "$1" $rst; }
function green() { echo -e $txtgreen "$1" $rst; }
function red(){ echo $txtred "$1" $rst; }
function cyan(){ echo $txtcyan "$1" $rst; }

saypass(){ echo "[${txtbold}${txtgreen}PASS$rst] $1"; }
sayfail(){ echo "[${txtbold}${txtred}FAIL$rst] $1"; }

get_home_page(){
HOMEPAGE="https://forum.porteus.org"

bold "Set your home page."
echo " Leave blank for: https://forum.porteus.org and press enter to continue."
read -p "> " answ

if [ $(wc -c <<<$answ) -gt 1 ]; then
	HOMEPAGE=$answ
	unset answ
	echo "Verifying home page ..."
	if is_online_url $HOMEPAGE; then
		saypass "Homepage is online."
			else
		sayfail "This homepage is not available."
		echo
		$FUNCNAME
	fi
else
	saypass "Homepage is available"
fi
}

array_menu(){
echo
echo "$1"
echo "$2"
select LOCALE in ${RESULT[@]}; do
    if [ -z "$LOCALE" ]; then
        bold "English locale chosen." && echo
			else
		echo "$txtgreen$LOCALE$rst locale chosen"
    fi
    break
done
}

array_menu2(){
echo "$1"
echo "$2" 
select CHOICE1 in ${RESULT1[@]}; do
    if [ -z "$CHOICE1" ]; then
        red "? version chosen." && echo
			else
		echo "$txtgreen${CHOICE1^^}$rst version chosen"
		echo
    fi
    break
done
}

get_locale(){
# Set locales in array
for a in ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hu hy-AM ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi xh xpi zh-CN zh-TW; do
	RESULT+=( $a )
done
array_menu "Choose a locale from the list." 
unset RESULT
}

get_release_type(){
array_menu2 "Please choose a release from the menu:" 
case $CHOICE1 in
	esr) LATVER=$LATVER1 ;;
	current) LATVER=$LATVER2 ;;
	beta) LATVER=$LATVER3 ;;
	*)
	echo "Invalid choice"
	$FUNCNAME
	;;
esac
}

create_default_settings(){
echo "W0dsb2JhbF0KaWQ9UG9ydGV1cwp2ZXJzaW9uPTUuMAphYm91dD1GaXJlZm94IGZvciBQb3J0ZXVz
CgpbUHJlZmVyZW5jZXNdCmFwcC51cGRhdGUuYXV0bz1mYWxzZQphcHAudXBkYXRlLmVuYWJsZWQ9
ZmFsc2UKYnJvd3Nlci5zdGFydHVwLmhvbWVwYWdlPSJkYXRhOnRleHQvcGxhaW4sYnJvd3Nlci5z
dGFydHVwLmhvbWVwYWdlPWh0dHBzOi8vZm9ydW0ucG9ydGV1cy5vcmciCmJyb3dzZXIuc3RhcnR1
cC5maXJzdHJ1blNraXBzSG9tZXBhZ2U9ZmFsc2UKYnJvd3Nlci5jYWNoZS5kaXNrLmNhcGFjaXR5
PTEwMjQwCmJyb3dzZXIuc2hlbGwuY2hlY2tEZWZhdWx0QnJvd3Nlcj1mYWxzZQphcHAuc2hpZWxk
Lm9wdG91dHN0dWRpZXMuZW5hYmxlZD1mYWxzZQpicm93c2VyLmNvbXBhY3Rtb2RlLnNob3c9dHJ1
ZQpicm93c2VyLnRhYnMuaW5UaXRsZWJhcj0wCmRvbS5wcml2YXRlLWF0dHJpYnV0aW9uLnN1Ym1p
c3Npb24uZW5hYmxlZD1mYWxzZQo=" | base64 -d > $TARG/usr/lib${SUFFIX}/firefox-$CHOICE1/distribution/distribution.ini
}

disable_updates(){
echo "ewoicG9saWNpZXMiOiAKICAgewogICAgICJEaXNhYmxlQXBwVXBkYXRlIjogdHJ1ZSwKICAgICAi
RGlzYWJsZVRlbGVtZXRyeSI6IHRydWUsCiAgICAgIkRpc2FibGVQb2NrZXQiOiB0cnVlCiAgICB9
Cn0K" | base64 -d > $TARG/usr/lib${SUFFIX}/firefox-$CHOICE1/distribution/policies.json
}

create_fake_slack(){
cd $TARG
PKGINFO=var/lib/pkgtools/packages
mkdir -p $PKGINFO
echo "PACKAGE NAME: firefox-$LATVER-$ARCH-$LOCALE" > $PKGINFO/firefox-$LATVER-$ARCH-$LOCALE

cat >> $PKGINFO/firefox-$LATVER-$ARCH-$LOCALE << EOS
PAKAGE DESCRIPTION:
firefox: firefox (Mozilla Firefox Web browser)
firefox:
firefox: This project is a redesign of the Mozilla browser component written
firefox: using the XUL user interface language.  Firefox empowers you to
firefox: browse faster, more safely and more efficiently than with any other
firefox: browser.
firefox:
firefox: Visit the Mozilla Firefox project online:
firefox:   http://www.mozilla.org/projects/firefox/
firefox:
firefox:
FILE LIST:
EOS

find * | grep -v var >> $PKGINFO/firefox-$LATVER-$ARCH-$LOCALE
}

menu_from_variable(){
echo
green "$(gettext " Is this an upgrade or a new install?")"
echo "$(gettext "Choose an number to confirm.")"
echo "$(gettext " ctrl+c to quit")" && echo
select CHOICE in $RESULT; do
    if [ -z "$CHOICE" ]; then
        bold "$(gettext "Invalid choice!")" && echo
        $FUNCNAME
    fi
    break
done
}

checksum () {	
echo "Verifying download integrity.."
echo "Server  : $SUM1"
echo "Download: $SUM2"
if [ "$SUM1" = "$SUM2" ]; then 
     echo "Download verified." 
else 
	read -p "Integrity check failed. Would you like to continue anyway? [y/n]" -n 1 -r -s && echo
	if [[ $REPLY =~ ^[Nn]$ ]]; then
		cleanup
	fi
fi
}

cleanup(){
echo
rm -rf $TARG
[ -d $TMPDIR ] && rm -rf $TMPDIR
exit	
}
trap cleanup SIGHUP SIGINT SIGTERM

######### Start checks
# Check if firefox is currently installed
bold "Checking if firefox is installed ..."
command -pv firefox >/dev/null && ISINSTALLED=0

# Get current firefox version if installed
if [ "$ISINSTALLED" ]; then
	sayok "firefox is installed"
	CVER=$(find /var/lib/pkgtools/packages/firefox* 2>/dev/null | sort | tail -n1 | awk -F- '{print$2}')
        [ "$CVER" ] ||  CVER=$(su - guest -c 'firefox -v' | cut -d" " -f3)
	[ "$CVER" ] && sayok "firefox version: $txtgreen $CVER $rst" || echo "No firefox version found"
		else
	echo "firefox is not installed"
fi

## Check for firefox file in $WRKDIR
## If it exists then ask to build from it.
if [ $(find $WRKDIR/firefox-* 2>/dev/null | wc -l) -ge 1 ]; then
	# Make sure it is a tarball
	cfile=( $(find $WRKDIR/firefox-*.xz 2>/dev/null | awk -F/ '{print$NF}') )
	if [ ${#cfile[@]} -gt 0 ]; then
		RESULT=${cfile[@]}
		echo
		green "A firefox tarball was found in $WRKDIR"
		echo " We will use this archive to create firefox."
		menu_from_array "Choose the firefox file you want to process."
		echo "CHOICE:$CHOICE"
	fi
fi

bold "Checking for Porteus ..."
is_porteus && saypass "Distro is Porteus" || { sayfail "Distro is not Porteus"; cleanup; }

# Get version on porteus server
SERVER_LATFILE=$(lynx -dump --nonumbers --listonly $SERVER/$SARCH/current/modules | awk -F/ '/firefox/{print$NF}' | tail -n1)
SERVER_LATVER=$(awk -F- '{print$2}' <<<$SERVER_LATFILE)

############ Start input
if [ -z $CHOICE ]; then
	echo
	bold "Fetching latest firefox version info..."

	# check installed version is up to date, if so offer escape.
	if [ "$LATVER1" = "$CVER" ] || [ "$LATVER2" = "$CVER" ] || [ "$LATVER3" = "$CVER" ]; then
		read -p " You already have the latest version $txtgreen$CVER$rst. Do you still want to continue? [y/n]" -n 1 -r -s && echo
			[[ $REPLY =~ ^[Nn]$ ]] && exit 0
	fi

	# show all version information
	echo "The Porteus$txtgreen SERVER$rst version is :" $txtgreen "$SERVER_LATVER" $rst

	if [ "$LATVER1" ] || [ "$LATVER2" ] || [ "$LATVER3" ]; then
		echo "The Firefox$txtgreen ESR$rst version is    :" $txtgreen "$LATVER1" $rst
		echo "The Firefox$txtgreen CURRENT$rst version is:" $txtgreen "$LATVER2" $rst
		echo "The Firefox$txtgreen BETA$rst version is   :" $txtgreen "$LATVER3" $rst	
	else
		sayfail "Could not get firefox version"
		cleanup
	fi		

	## Sanitize link (mozilla server is very fussy)
	FFLINK=$(awk -F"http://" '{print$NF}' <<<$LATLINK | sed -e 's@//@/@g' -e 's/\(.*\)./\1/')

	cyan "You can choose to download the premade module from our server(en-US locale)" 
	cyan "or download one of the versions from mozilla,"  
	cyan "which enables you to choose your language and set a custom homepage."
	echo

	read -p " Would you like to download the porteus server version? [y/n]" -n 1 -r -s && echo  
	if [[ $REPLY =~ ^[Yy]$ ]]; then
		echo
		download $SERVER/$SARCH/current/modules/$SERVER_LATFILE $WRKDIR
        	## Check that we have a module in $WRKDIR
        	if [ ! -f $WRKDIR/$SERVER_LATFILE ]; then
	     		echo
	     		sayerror "Download of the firefox module failed."
	     		echo
	     		cleanup
        	else
	    		echo
	    		echo "Your file is at:" $txtcyan "$WRKDIR/$SERVER_LATFILE" $rst
	    		echo "Please move it to your modules folder to survive a reboot."
	    		echo
	    		cleanup
		fi
	else
		echo
		check_space
		RESULT1+=( 'esr' 'current' 'beta' )
		get_release_type
 		read -p " Would you like to download $txtgreen firefox-$LATVER $rst ? [y/n]"  -n 1 -r -s && echo  
		if [[ ! $REPLY =~ ^[Yy]$ ]]; then 
   		cleanup
		fi
	fi
	get_home_page
	get_locale
else
	get_home_page
	LOCALE=$(sed 's/_/-/' <<< ${LANG//.*})
fi

## Create TMPDIR
[ ! -d $TMPDIR ] && mkdir -p $TMPDIR

## Download the latest file
if [ -z $CHOICE ]; then
	if [ ! -e $TMPDIR/firefox-$LATVER.$EXT ]; then
		download "$FFURL$LATVER/linux-$ARCH/$LOCALE/firefox-$LATVER.$EXT" $TMPDIR
	fi
else
	LATVER=${CHOICE:8:-8}
	cp -a $WRKDIR/$CHOICE $TMPDIR
fi

## Check that we have an archive in TMPDIR
if [ ! -f $TMPDIR/firefox-$LATVER.$EXT ]; then
	echo
	sayerror "File $TMPDIR/firefox-$LATVER.$EXT not found"
	cleanup
fi

## Check integrity of downloaded tarball using sha256sum
if [ -z $CHOICE ]; then
	echo "Verifying download integrity.."
	SUM1=$(lynx -dump -dont_wrap_pre ${FFURL}${LATVER}/SHA256SUMS | grep "linux-${ARCH}/${LOCALE}/firefox-${LATVER}.$EXT" | cut -d" " -f1)
	SUM2=$(sha256sum $TMPDIR/firefox* | cut -d" " -f1)
	checksum
fi 

## Create distribution directory
mkdir -p $TARG/usr/lib${SUFFIX}/firefox-$CHOICE1/distribution || \
{ red "Failed to create distibution directory."; cleanup; exit 1; }

green "Decompressing firefox tarball ..."
cd $TMPDIR
tar xvf firefox-$LATVER.$EXT || { red "Failed to decompress tarball."; exit 1; }
[ ! -d $TARG ] && mkdir -p $TARG

green "Linking firefox binary ..."
cd $TARG/usr/lib${SUFFIX}
ln -sf ./firefox-$CHOICE1 firefox
cd -

## Create lib dir
green "Copying firefox files ..."
cp -a firefox/* $TARG/usr/lib${SUFFIX}/firefox-$CHOICE1/ #|| { red "Failed to copy firefox directory."; cleanup; exit 1; }
[ -e $TARG/usr/bin/firefox ] && unlink $TARG/usr/bin/firefox
[ ! -d $TARG/usr/bin ] && mkdir -p $TARG/usr/bin
cat > $TARG/usr/bin/firefox << EOF
#!/bin/bash
exec env GTK_CSD=1 /usr/lib${SUFFIX}/firefox-$CHOICE1/firefox "\$@"
EOF
chmod +x $TARG/usr/bin/firefox

green "Creating default settings ..."
create_default_settings
disable_updates

chmod 755 $TARG/usr/bin
chmod 755 $TARG/usr/lib${SUFFIX}
chmod 755 $TARG/usr/lib${SUFFIX}/firefox-$CHOICE1
chmod -R 755 $TARG/usr/lib${SUFFIX}/firefox-$CHOICE1/distribution

mkdir -p $TARG/usr/share/applications 2>/dev/null
echo "W0Rlc2t0b3AgRW50cnldCkV4ZWM9ZmlyZWZveCAldQpJY29uPWZpcmVmb3gKVHlwZT1BcHBsaWNh
dGlvbgpDYXRlZ29yaWVzPU5ldHdvcms7Ck5hbWU9RmlyZWZveApOYW1lW2JuXT3gpqvgpr7gp5/g
pr7gprDgpqvgppXgp43gprgKTmFtZVtlb109TW96aWxvIEZhanJvdnVscG8KTmFtZVtmaV09TW96
aWxsYSBGaXJlZm94Ck5hbWVbcGFdPeCoq+CovuCoh+CosOCoq+Cpi+ColeCouApOYW1lW3RnXT3Q
oNOv0LHQvtKz0Lgg0L7RgtCw0YjQuNC9CkdlbmVyaWNOYW1lPVdlYiBCcm93c2VyCkdlbmVyaWNO
YW1lW2FmXT1XZWIgQmxhYWllcgpHZW5lcmljTmFtZVthcl092YXYqti12YHYrSDZiNmK2KgKR2Vu
ZXJpY05hbWVbYXpdPVZlYiBTyZl5eWFoxLEKR2VuZXJpY05hbWVbYmddPdCR0YDQsNGD0LfRitGA
CkdlbmVyaWNOYW1lW2JuXT3gppPgp5/gp4fgpqwg4Kas4KeN4Kaw4Ka+4KaJ4Kac4Ka+4KawCkdl
bmVyaWNOYW1lW2JyXT1GdXJjaGVyIGFyIEd3aWFkCkdlbmVyaWNOYW1lW2JzXT1XV1cgUHJlZ2xl
ZG5pawpHZW5lcmljTmFtZVtjYV09RnVsbGVqYWRvciB3ZWIKR2VuZXJpY05hbWVbY3NdPVdXVyBw
cm9obMOtxb5lxI0KR2VuZXJpY05hbWVbY3ldPVBvcnlkZCBHd2UKR2VuZXJpY05hbWVbZGFdPUJy
b3dzZXIKR2VuZXJpY05hbWVbZGVdPVdlYi1Ccm93c2VyCkdlbmVyaWNOYW1lW2VsXT3OoM61z4HO
uc63zrPOt8+Ezq7PgiDOmc+Dz4TOv8+NCkdlbmVyaWNOYW1lW2VvXT1UVFQtbGVnaWxvCkdlbmVy
aWNOYW1lW2VzXT1OYXZlZ2Fkb3Igd2ViCkdlbmVyaWNOYW1lW2V0XT1WZWViaWxlaGl0c2VqYQpH
ZW5lcmljTmFtZVtldV09V2ViIGFyYWthdHphaWxlYQpHZW5lcmljTmFtZVtmYV092YXYsdmI2LHa
r9ixINmI2KgKR2VuZXJpY05hbWVbZmldPVdXVy1zZWxhaW4KR2VuZXJpY05hbWVbZm9dPUFsbsOz
dHNmYXIKR2VuZXJpY05hbWVbZnJdPU5hdmlnYXRldXIgd2ViCkdlbmVyaWNOYW1lW2dsXT1OYXZl
Z2Fkb3IgV2ViCkdlbmVyaWNOYW1lW2hlXT3Xk9ek15PXpNefINeQ15nXoNeY16jXoNeYCkdlbmVy
aWNOYW1lW2hpXT3gpLXgpYfgpKwg4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KSwCkdlbmVyaWNOYW1l
W2hyXT1XZWIgcHJlZ2xlZG5pawpHZW5lcmljTmFtZVtodV09V2ViYsO2bmfDqXN6xZEKR2VuZXJp
Y05hbWVbaXNdPVZhZnJpCkdlbmVyaWNOYW1lW2l0XT1Ccm93c2VyIFdlYgpHZW5lcmljTmFtZVtq
YV0944Km44Kn44OW44OW44Op44Km44K2CkdlbmVyaWNOYW1lW2tvXT3sm7kg67iM65287Jqw7KCA
CkdlbmVyaWNOYW1lW2xvXT3gu4DguqfgurHguprguprguqPgurLguqfgu4DguorgurUKR2VuZXJp
Y05hbWVbbHRdPcW9aW5pYXRpbmtsaW8gbmFyxaF5a2zElwpHZW5lcmljTmFtZVtsdl09V2ViIFDE
gXJsxatrcwpHZW5lcmljTmFtZVtta1090J/RgNC10LvQuNGB0YLRg9Cy0LDRhyDQvdCwINCY0L3R
gtC10YDQvdC10YIgCkdlbmVyaWNOYW1lW21uXT3QktC10LEt0KXTqdGC06nRhwpHZW5lcmljTmFt
ZVtuYl09TmV0dGxlc2VyCkdlbmVyaWNOYW1lW25kc109TmV0dGtpZWtlcgpHZW5lcmljTmFtZVtu
bF09V2ViYnJvd3NlcgpHZW5lcmljTmFtZVtubl09TmV0dGxlc2FyCkdlbmVyaWNOYW1lW25zb109
U2Vpbnlha2lzaSBzYSBXZWIKR2VuZXJpY05hbWVbcGFdPeCoteCpiOCorCDgqJ3gqLLgqJXgqL7g
qLDgqL4KR2VuZXJpY05hbWVbcGxdPVByemVnbMSFZGFya2EgV1dXCkdlbmVyaWNOYW1lW3B0XT1O
YXZlZ2Fkb3IgV2ViCkdlbmVyaWNOYW1lW3B0X0JSXT1OYXZlZ2Fkb3IgV2ViCkdlbmVyaWNOYW1l
W3JvXT1OYXZpZ2F0b3IgZGUgd2ViCkdlbmVyaWNOYW1lW3J1XT3QktC10LEt0LHRgNCw0YPQt9C1
0YAKR2VuZXJpY05hbWVbc2VdPUZpZXJwbcOhZGF0bG9nYW4KR2VuZXJpY05hbWVbc2tdPVdlYm92
w70gcHJlaGxpYWRhxI0KR2VuZXJpY05hbWVbc2xdPVNwbGV0bmkgYnJza2FsbmlrCkdlbmVyaWNO
YW1lW3NyXT3QktC10LEg0L/RgNC10YLRgNCw0LbQuNCy0LDRhwpHZW5lcmljTmFtZVtzckBMYXRu
XT1WZWIgcHJldHJhxb5pdmHEjQpHZW5lcmljTmFtZVtzc109SWJyYXd1emEgeWVXZWIgCkdlbmVy
aWNOYW1lW3N2XT1XZWJibMOkc2FyZQpHZW5lcmljTmFtZVt0YV094K614K6y4K+IIOCuieCusuCu
vuCuteCuvwpHZW5lcmljTmFtZVt0Z1090KLQsNGE0YHQuNGA0LPQsNGA0Lgg0LLRjdCxCkdlbmVy
aWNOYW1lW3RoXT3guYDguKfguYfguJrguJrguKPguLLguKfguYDguIvguK3guKPguYwKR2VuZXJp
Y05hbWVbdHJdPVdlYiBUYXJhecSxY8SxCkdlbmVyaWNOYW1lW3VrXT3QndCw0LLRltCz0LDRgtC+
0YAg0KLQtdC90LXRggpHZW5lcmljTmFtZVt1el090JLQtdCxLdCx0YDQsNGD0LfQtdGACkdlbmVy
aWNOYW1lW3Zlbl09QnVyb256YSB5YSBXZWJ1CkdlbmVyaWNOYW1lW3ZpXT1UcsOsbmggZHV54buH
dCBXZWIKR2VuZXJpY05hbWVbd2FdPUJldGNodGV1IHdhaWJlCkdlbmVyaWNOYW1lW3hoXT1VbWto
YW5nZWxpIHppbmN3YWRpIHdlIFdlYgpHZW5lcmljTmFtZVt6aF9DTl09572R6aG15rWP6KeI5Zmo
CkdlbmVyaWNOYW1lW3poX1RXXT3ntrLpoIHngI/opr3lmagKR2VuZXJpY05hbWVbenVdPVVtY2lu
Z2kgd2UtV2ViCk1pbWVUeXBlPXRleHQvaHRtbDt0ZXh0L3htbDthcHBsaWNhdGlvbi94aHRtbCt4
bWw7YXBwbGljYXRpb24vdm5kLm1vemlsbGEueHVsK3htbDt0ZXh0L21tbDt4LXNjaGVtZS1oYW5k
bGVyL2h0dHA7eC1zY2hlbWUtaGFuZGxlci9odHRwczsKWC1LREUtU3RhcnR1cE5vdGlmeT10cnVl
Cg==" | base64 -d > $TARG/usr/share/applications/mozilla-firefox.desktop

## Create browser.desktop file
cp -a $TARG/usr/share/applications/mozilla-firefox.desktop $TARG/usr/share/applications/browser.desktop
echo "NoDisplay=true" >> $TARG/usr/share/applications/browser.desktop
sed -i 's/MimeType/#MimeType/' $TARG/usr/share/applications/browser.desktop

# Add home page
green "Adding home page: $HOMEPAGE"
sed -i 's@https://forum.porteus.org@'$HOMEPAGE'@g' $TARG/usr/lib${SUFFIX}/firefox-$CHOICE1/distribution/distribution.ini

create_fake_slack

green "Creating module ..."

cd $WRKDIR

dir2xzm $TARG $WRKDIR/firefox-$LATVER-$ARCH-$LOCALE.xzm
echo "Your file is at:" $txtgreen "$WRKDIR/firefox-$LATVER-$ARCH-$LOCALE.xzm" $rst
cyan "Please copy it to your modules folder to survive a reboot."
echo
cleanup
