Friday, January 1, 2010

google chrome slackware and vectorlinux scripts updated!!

recently google made a beta release of chrome.  their method of release has broken my install and update scripts for google chrome.  i spent a few hours today making some bug fixes that take into account the recent changes.  please remember the scripts will still crash xfce.  you will have to reboot after running either of the scripts, then things will return to normal.  for the life of me I can't figure out why the scripts crash xfce.


install-chrome.sh
Code:
#! /bin/bash
# Title: install-chrome
# Author: BroknDodge
# License: BSD
# Version: 0.0.5
#
# Special thanks to the following Vectorians for their help and suggestions:
# Daniel stretchedthin uelsk8ts
# hata_ph rbistolfi MOE-lnx
#
# Very Special thanks to the folks at Chromium.org and Google
# without whom there wouldn't be anything to install
#


#------------------------------------------#
# Setting up the Environment


enablePlugins="$1"
tmp="/tmp"
release="0"
chromeURL="http://dl.google.com/linux/deb/"


nssURL="http://connie.slackware.com/~alien/slackbuilds/mozilla-nss/pkg/12.2"
nssPackage="mozilla-nss-3.12.3-i486-1alien.tgz"


#------------------------------------------#
# Making sure the system is sane


if [ $UID != 0 ]; then
echo "You must run this script as root."
exit 1
fi


if [ -d "$tmp/install-chrome" ]; then # check for and create temp dir
# Will enter here if dir doesn't exist
rm -R $tmp/install-chrome # hope you didn't have anything
mkdir $tmp/install-chrome # stored there
else
mkdir $tmp/install-chrome
fi


#------------------------------------------#


function trim() # function for trimming white space from my arrays
{
trimmed=$1
trimmed=${trimmed%% }
trimmed=${trimmed## }


echo $trimmed
}




function dotests {


echo Running tests...
#------------------------------------------#
# check for lzma


haveLZMA=`which lzma` # check for and getting lzma
if [ "$haveLZMA" == "" ]; then
slapt-get --install lzma
fi


#------------------------------------------#


#------------------------------------------#
# check for nss = 3.12.3


nssInstalled=`slapt-get --search nss-3.12.3` # I really need to check the version
nssInstalled=${nssInstalled#*=} # as well, but this build seems to
nssInstalled=${nssInstalled%]*} # work best with 3.12.3


if [ "$nssInstalled" != "yes" ]; then
installnss
fi
#------------------------------------------#


#------------------------------------------#
# check for GConf


gconfInstalled=`slapt-get --search GConf-2.22.0` # VL-Light doesn't ship with GConf
gconfInstalled=${gconfInstalled#*=}
gconfInstalled=${gconfInstalled%]*}


if [ "$gconfInstalled" != "no" ]; then
slapt-get --install GConf
fi


}
#------------------------------------------#




function simlinks {
cd /usr/lib
if [ ! -f "libnspr4.so.0d" ]; then
ln -s libnspr4.so libnspr4.so.0d
fi


if [ ! -f "libnss3.so.1d" ]; then
ln -s libnss3.so libnss3.so.1d
fi


if [ ! -f "libnssutil3.so.1d" ]; then
ln -s libnssutil3.so libnssutil3.so.1d
fi


if [ ! -f "libplc4.so.0d" ]; then
ln -s libplc4.so libplc4.so.0d
fi


if [ ! -f "libplds4.so.0d" ]; then
ln -s libplds4.so libplds4.so.0d
fi


if [ ! -f "libsmime3.so.1d" ]; then
ln -s libsmime3.so libsmime3.so.1d
fi


if [ ! -f "libssl3.so.1d" ]; then
ln -s libssl3.so libssl3.so.1d
fi




}


function installnss {


cd $tmp/install-chrome
wget $nssURL/$nssPackage
if [ ! -f "$nssPackage" ]; then
echo "For some reason wget didnt pull nss from Connies"
echo "slackware site"
return 1
fi
installpkg $nssPackage


rm $nssPackage


}


function installchrome {


cd $tmp/install-chrome
wget http://dl.google.com/linux/deb/dists/stable/main/binary-i386/Packages.gz
gunzip Packages.gz
rm -f Packages.gz
IFS='
'


declare -a fn=( `grep 'Filename:' Packages` ) # assign grep output to a variable
for i in 0 $((${#fn[@]} - 1))
do
fn[$i]=$(trim "${fn[$i]#*:}")
done


chromeFilename="${fn[$release]}"
chromePackage="${chromeFilename##*/}"


wget $chromeURL$chromeFilename


if [ ! -f "$chromePackage" ]; then # quit running if wget failed
echo "Something went wrong while retrieving" # and kick out a sane error msg
echo "Google Chrome"
return 1
fi


echo "Unpacking the deb file"
ar -x $tmp/install-chrome/$chromePackage


if [ ! -f "data.tar.lzma" ]; then # quit running if ar failed
echo "Something went wrong while unpacking" # and kick out a sane error msg
echo "the .deb file"
return 1
fi


echo "Extracting Google Chrome"
lzma -d data.tar.lzma
if [ ! -f "data.tar" ]; then # quit running if lzma failed
echo "Something went wrong while extracting" # and kick out a sane error msg
echo "Google Chrome"
return 1
fi


cd /
echo "Installing Google Chrome"


tar xf $tmp/install-chrome/data.tar
if [ ! -f "/opt/google/chrome/google-chrome" ]; then # let me know if chrome wasn't
echo "Installation failed while moving files" # installed correctly
echo ""
return 1
fi
echo "Installation Complete!"


}


function main {
echo
echo "WARNING WARNING WARNING WARNING WARNING"
echo "This script may severely damage your system"
echo "Dont say I didnt WARN you"
echo
echo "Are you sure you want me to Monkey with your System? [yes/no]"
echo "[for your safety you must type yes to proceed]"
echo


read YN
if [ "$YN" = "yes" ]; then
if [ -d "/opt/google/chrome" ]; then
echo "Looks like Google Chrome is already installed"
echo "Do you want to remove it and reinstall? [yes/no]"
read yn
if [ "$yn" = "yes" ]; then
rm -R /opt/google/chrome
rm /usr/share/applications/google-chrome.desktop
dotests
simlinks
installchrome
else
return
fi
else
dotests
simlinks
installchrome


fi
elif [ "$YN" = "no" ]; then
return
else
main
fi


}


main


update-chrome.sh
code:
#!/bin/bash
# Title: update-chrome
# Author: BroknDodge
# License: BSD
# Version: 0.0.1


# http://dl.google.com/linux/deb/dists/stable/main/binary-i386/Packages.gz
# http://dl.google.com/linux/deb/dists/pool/main/g/google-chrome-unstable/google-chrome-unstable_3.0.196.0-r22005_i386.deb


#----------------------------------------#
# Settings


url="http://dl.google.com/linux/deb/"
tmp="/tmp"
declare -a ChromePackages


#----------------------------------------#


#----------------------------------------#
# Testing the Environment


if [ $UID != 0 ];then # test for root
echo "You must run this script as root."
exit 0
fi


if [ ! -d "$tmp/update-chrome" ]; then
# Will enter here if dir doesn't exist
mkdir $tmp/update-chrome
fi


cd $tmp/update-chrome


if [ -f "Packages" ]; then
#checking to see if Packages exists
mv Packages Packages.installed
fi


#----------------------------------------#


function check-update {
wget http://dl.google.com/linux/deb/dists/stable/main/binary-i386/Packages.gz
gunzip Packages.gz


if [ ! -f "Packages.installed" ]; then
update
fi


IFS='
'
declare -a version=( `grep 'Version:' Packages` )
for i in 0 $((${#version[@]} - 1))
do
version[$i]=$(trim "${version[$i]#*:}")
done


declare -a VersionInstalled=( `grep 'Version:' Packages.installed` )
for i in 0 $((${#VersionInstalled[@]} - 1))
do
VersionInstalled[$i]=${VersionInstalled[$i]#*:}
done


if [ "$version[0]" == "$VersionInstalled[0]" ]; then
echo Google Chrome is Up to Date
rm Packages
return
else
echo $VersionInstalled[0] is installed, but $version[0] is available
echo Updating
update
fi


}


function update {
IFS='
'


declare -a fn=( `grep 'Filename:' Packages` ) # assign grep output to a variable
for i in 0 $((${#fn[@]} - 1))
do
fn[$i]=$(trim "${fn[$i]#*:}")
done


filename="${fn[0]}"


mkdir tmp
cd tmp
wget $url$filename


rm -R /opt/google/chrome # get rid of the previous install
# don't worry settings are stored in $HOME dir
cd $tmp/update-chrome/tmp


echo Unpacking the deb file...
ar -x ${filename##*/}
echo Extracting Google Chrome...
lzma -d data.tar.lzma
cd /
echo Updating Google Chrome...


tar xf $tmp/update-chrome/tmp/data.tar
cd $tmp/update-chrome
mv Packages Packages.installed
declare -a VersionInstalled=( `grep 'Version:' Packages.installed` )
for i in 0 $((${#VersionInstalled[@]} - 1))
do
echo ${VersionInstalled[$i]}
VersionInstalled[$i]=$(trim "${VersionInstalled[$i]#*:}")
echo "${VersionInstalled[$i]}"
done


echo "Google Chrome updated to version" ${VersionInstalled[0]}
rm -R tmp


return
}




function trim() # function for trimming white space from my arrays
{
trimmed=$1
trimmed=${trimmed%% }
trimmed=${trimmed## }


echo $trimmed
}




function main {
check-update
return
}


main

No comments:

Post a Comment