| 
		
	
	
	
		
	Posts: 688 
	Threads: 49 
	Joined: Jul 2014
	
 Reputation: 
0 
	
	
		 (11-20-2014, 10:16 PM)Jerry link Wrote:  Thanks misko, a good quick fix there, What we need long term is a if-else statement that suppresses any errors  Here you go, pall.    Code: #!/bin/bash
 bold=`tput bold`
 normal=`tput sgr0`
 
 echo "${bold}**********************"
 echo "Linux Lite 2.0 Updates"
 echo "**********************${normal}"
 echo ""
 echo "Linux Lite will now search for updates for your computer."
 echo "Once installed, your computer will be up to date."
 echo "Simply follow the onscreen instructions."
 echo ""
 echo "Please enter your password to continue..."
 if [ "$(pidof synaptic)" ]
 then
 sudo killall -9 synaptic
 else
 echo""
 fi
 if [ -z "$(pgrep gdebi-gtk)" ]
 then
 echo ""
 else
 killall -9 gdebi-gtk
 fi
 sudo apt-get update && sudo apt-get upgrade
 echo ""
 echo "Updates complete."
 echo "This window will now close."
 sleep 5
 
	
	
	
		
	Posts: 9,005 
	Threads: 567 
	Joined: Feb 2014
	
 Reputation: 
12 
	
	
		 (11-20-2014, 10:33 PM)misko_2083 link Wrote:  [quote author=Jerry link=topic=1182.msg7309#msg7309 date=1416521784]Thanks misko, a good quick fix there, What we need long term is a if-else statement that suppresses any errors
  Here you go, pall.    Code: #!/bin/bash
 bold=`tput bold`
 normal=`tput sgr0`
 
 echo "${bold}**********************"
 echo "Linux Lite 2.0 Updates"
 echo "**********************${normal}"
 echo ""
 echo "Linux Lite will now search for updates for your computer."
 echo "Once installed, your computer will be up to date."
 echo "Simply follow the onscreen instructions."
 echo ""
 echo "Please enter your password to continue..."
 if [ "$(pidof synaptic)" ]
 then
 sudo killall -9 synaptic
 else
 echo""
 fi
 if [ -z "$(pgrep gdebi-gtk)" ]
 then
 echo ""
 else
 killall -9 gdebi-gtk
 fi
 sudo apt-get update && sudo apt-get upgrade
 echo ""
 echo "Updates complete."
 echo "This window will now close."
 sleep 5
[/quote]
 
Beautiful misko! I'll upload the new deb's soon    
	
	
	
		
	Posts: 9,005 
	Threads: 567 
	Joined: Feb 2014
	
 Reputation: 
12 
	
	
		New versions uploaded, credits to misko in the updates script.
 First post script updated too.
 
	
	
	
		
	Posts: 688 
	Threads: 49 
	Joined: Jul 2014
	
 Reputation: 
0 
	
	
		Made some changes to the script. 
Added: A check to see if any updates are available, if there are none, script pops up a dialog box saying 'No Updates Available'. 
Changes: Script opens a list of available updates. 
Note: The list of packages that have been kept back is not displaying.
 Code: #!/bin/bash#-----------------------------------------------------------------------------------------
 # Name: Linux Lite Updates
 # Description: A GUI tool to easily install Updates in Linux Lite.
 # Authors: Misko_2083, Jerry Bezencon
 # Date: Nov 20th, 2014
 # Website: https://www.135978621.xyz
 #-----------------------------------------------------------------------------------------
 
 # Kill off any package managers that may be running
 if [ "$(pidof synaptic)" ]
 then
 sudo killall -9 synaptic
 else
 echo ""
 fi
 
 if [ -z "$(pgrep gdebi-gtk)" ]
 then
 echo ""
 else
 killall -9 gdebi-gtk
 fi
 
 # Linux Lite default dialog icon
 ic="/usr/share/icons/zenity-llcc.png"
 
 # Get list of available updated packages then populate them to /tmp/updateslist
 zenity --question --title="Linux Lite Updates" --window-icon="/usr/share/icons/zenity-llcc.png" --text="We will now fetch the Updates list.\n\nClick Yes to continue or No to abort."
 if [ "$?" -eq "0" ];then
 
 x=$( stdbuf -oL /bin/bash \-c '(sudo apt-get update \-y )' 2>&1 |
 stdbuf -oL sed -n -e '/\[*$/ s/^/# /p' -e '/\*$/ s/^/# /p'|
 zenity --progress --title="Updating package information..." --pulsate \
 --width=600 --auto-close )
 
 
 # Creates a list in /tmp/updateslist
 LISTNAMES=$(apt-get --just-print upgrade 2>&1 | perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s\[([\w,\-,\d,\.,~,:,\+]+)\]\s\(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "Name: $1 INSTALLED: $2 AVAILABLE: $3\n"}' | tee /tmp/updateslist)
 
 # A check here to see if any updates are available, if there are none, script pops up dialog box saying 'No Updates Available', removes /tmp/updateslist
 if [  -z "$(cat /tmp/updateslist)"  ]; then
 zenity --info --window-icon="/usr/share/icons/zenity-llcc.png" --title="Linux Lite Updates" \
 --text="No Updates Available"
 rm /tmp/updateslist
 exit 0
 fi
 
 # Erase existing available info
 sudo dpkg --clear-avail
 
 
 
 else
 exit 0
 fi
 
 # Get the list from /tmp/updateslist and call the zenity dialog to show update list
 UPDATELIST=(`cat /tmp/updateslist | awk '{print "TRUE\n",$2,"\n",$4,"\n",$6}' `)
 LIST=$(zenity --list --checklist --column="pick" --column="NAME" --column="INSTALLED" --column="AVAILABLE" "${UPDATELIST[@]}" --separator=" " --text="Text goes here." --width=800 --height=700)
 if [ "$?" -eq "0" ];then
 
 # Main window dialogue.
 INSTALLER_TITLE="Linux Lite Updates
 -----------------------------------------------------------------------------------------------------------
 
 Please make sure all software installation programs like
 <b>Synaptic Package Manager</b> and <b>Gdebi</b> are closed before proceeding.
 
 When you click on <b>Yes</b>, this window will close and the updates will begin.
 
 -----------------------------------------------------------------------------------------------------------
 Click on <b>Yes</b> to continue or <b>No</b> to cancel the updates process."
 
 # Halt updates script if user selects Cancel
 else
 exit 0
 fi
 
 # Continue script if no halt
 INSTALL_ICON="/usr/share/icons/zenity-llcc.png"
 APPNAME="Linux Lite"
 
 zenity --question --title="$APPNAME Updates" --window-icon="${INSTALL_ICON}" --text="${INSTALLER_TITLE}"
 
 if [ "$?" -eq "0" ]; then
 
 x=$( stdbuf -oL /bin/bash \-c '(sudo apt-get install $LIST \-y )' 2>&1 | tee /var/log/llupdates.log |
 stdbuf -oL sed -n -e '/\[*$/ s/^/# /p' -e '/\*$/ s/^/# /p'|
 zenity --progress --title="Updating..." --pulsate \
 --width=600 --auto-close )
 
 if [ "${PIPESTATUS[0]}" -ne "0" ]; then
 
 zenity --error \
 --title="Error" --text="$APPNAME Updates have failed."
 exit 0
 fi
 
 else
 
 exit 0
 fi
 
 PROCEED=$(zenity --question --title="$APPNAME Updates" --window-icon=/usr/share/icons/zenity-llcc.png --text="Updates have finished installing.\n\nWould you like to view the $APPNAME Updates log?"; echo $?)
 if [ ${PROCEED} -eq 1 ]; then
 zenity --info --title="$APPNAME Updates" --window-icon="${INSTALL_ICON}" --text="$APPNAME Updates Complete."
 exit;
 else
 zenity --text-info --title="Updates Log" --width=700 --height=300 --filename="/var/log/llupdates.log"
 fi
 
 exit 0
 
	
	
	
		
	Posts: 66 
	Threads: 20 
	Joined: Mar 2014
	
 Reputation: 
0 
	
	
		I have 1.06 can i run the script or? /ivar
	 
	
	
	
		
	Posts: 9,005 
	Threads: 567 
	Joined: Feb 2014
	
 Reputation: 
12 
	
	
		 (11-22-2014, 12:38 AM)iwar link Wrote:  I have 1.06 can i run the script or? /ivar 
You can.
	 
	
	
	
		
	Posts: 9,005 
	Threads: 567 
	Joined: Feb 2014
	
 Reputation: 
12 
	
	
		Some nice additions there misko    I think we should remove the checklist though, new folk could interrupt this incorrectly.
	 
	
	
	
		
	Posts: 9,005 
	Threads: 567 
	Joined: Feb 2014
	
 Reputation: 
12 
	
	
		If you still want to use the existing Menu, Favorites, Install Updates entry to try the new beta method, here's how. 
1) Open a  terminal do:
 Code: sudo cp ~/updatestest /usr/scripts
2) Then go to Menu, Settings, Main Menu. Highlight Install Updates in the right hand pane and click on Properties . Change the Command  to:
 Code: gksudo /usr/scripts/updatestest
Now the new GUI will run from the Menu. To go back to the stock way of doing Updates, simply replace:
 Code: gksudo /usr/scripts/updatestest
with
 ![[Image: eFfjkiL.png]](http://i.imgur.com/eFfjkiL.png)  
	
	
	
		
	Posts: 688 
	Threads: 49 
	Joined: Jul 2014
	
 Reputation: 
0 
	
	
		 (11-22-2014, 06:39 AM)Jerry link Wrote:  Some nice additions there misko  I think we should remove the checklist though, new folk could interrupt this incorrectly. OK, checklist is removed   
Some minor improvements to the script. 
First open sinaptic and/or gdebi-gtk to test this.
 Code: #!/bin/bash#-----------------------------------------------------------------------------------------
 # Name: Linux Lite Updates
 # Description: A GUI tool to easily install Updates in Linux Lite.
 # Authors: Misko_2083, Jerry Bezencon
 # Date: Nov 20th, 2014
 # Website: https://www.135978621.xyz
 #-----------------------------------------------------------------------------------------
 
 # Kill off any package managers that may be running
 # Timeout in seconds
 if [ "$(pidof synaptic)" ]
 then
 TIMEOUT=10
 (
 SEC=$TIMEOUT;
 while [[ $SEC -ge 0 ]];
 do
 echo `expr \( \( $TIMEOUT - $SEC \) \* 100 / $TIMEOUT \)`;
 echo "#synaptic will close in $SEC seconds.";
 SEC=`expr $SEC - 1`;
 sleep 1;
 done;
 ) | /usr/bin/zenity --progress --auto-close
 if [ "${PIPESTATUS[1]}" -ne "0" ]; then
 
 zenity --info \
 --title="Updates" --text="Close the synaptic package manager and try again."
 exit 0
 fi
 sudo killall -9 synaptic
 else
 echo ""
 fi
 
 if [ -z "$(pgrep gdebi-gtk)" ]
 then
 echo ""
 else
 TIMEOUT=10
 (
 SEC=$TIMEOUT;
 while [[ $SEC -ge 0 ]];
 do
 echo `expr \( \( $TIMEOUT - $SEC \) \* 100 / $TIMEOUT \)`;
 echo "#gdebi package installer will be closed in $SEC seconds.";
 SEC=`expr $SEC - 1`;
 sleep 1;
 done;
 ) | /usr/bin/zenity --progress --auto-close
 if [ "${PIPESTATUS[1]}" -ne "0" ]; then
 
 zenity --info \
 --title="Updates" --text="Close the gdebi package installer and try again."
 exit 0
 fi
 killall -9 gdebi-gtk
 fi
 
 # Linux Lite default dialog icon
 ic="/usr/share/icons/zenity-llcc.png"
 
 # Get list of available updated packages then populate them to /tmp/updateslist
 zenity --question --title="Linux Lite Updates" --window-icon="/usr/share/icons/zenity-llcc.png" --text="We will now fetch the Updates list.\n\nClick Yes to continue or No to abort."
 if [ "$?" -eq "0" ];then
 
 x=$( stdbuf -oL /bin/bash \-c '(sudo apt-get update \-y )' 2>&1 |
 stdbuf -oL sed -n -e '/\[*$/ s/^/# /p' -e '/\*$/ s/^/# /p'|
 zenity --progress --title="Updating package information..." --pulsate \
 --width=600 --auto-close )
 
 
 # Creates a list in /tmp/updateslist
 LISTNAMES=$(apt-get --just-print upgrade 2>&1 | perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s\[([\w,\-,\d,\.,~,:,\+]+)\]\s\(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "Name: $1 INSTALLED: $2 AVAILABLE: $3\n"}' |  tee /tmp/updateslist)
 
 
 # A check here to see if any updates are available, if there are none, script pops up dialog box saying 'No Updates Available', removes /tmp/updateslist
 if [  -z "$(cat /tmp/updateslist)"  ]; then
 zenity --info --window-icon="/usr/share/icons/zenity-llcc.png" --title="Linux Lite Updates" \
 --text="No Updates Available"
 rm /tmp/updateslist
 exit 0
 fi
 
 #Insert text into  /tmp/updateslist
 sed -i -e '1 i\#########                     List of available Updates                                           ##############' -e '1 i\#########  Click OK to continue or Cancel to stop the update process         ##############' /tmp/updateslist
 
 # Erase existing available info
 sudo dpkg --clear-avail
 
 
 
 else
 exit 0
 fi
 
 # Call the zenity dialog to show update list
 zenity --text-info --title="List of available Updates - Click OK to continue or Cancel to stop the update process" --width=700 --height=300 --filename="/tmp/updateslist "
 if [ "$?" -eq "0" ];then
 
 # Main window dialogue.
 INSTALLER_TITLE="Linux Lite Updates
 -----------------------------------------------------------------------------------------------------------
 
 Please make sure all software installation programs like
 <b>Synaptic Package Manager</b> and <b>Gdebi</b> are closed before proceeding.
 
 When you click on <b>Yes</b>, this window will close and the updates will begin.
 
 -----------------------------------------------------------------------------------------------------------
 Click on <b>Yes</b> to continue or <b>No</b> to cancel the updates process."
 
 # Halt updates script if user selects Cancel
 else
 rm /tmp/updateslist
 exit 0
 fi
 
 # Continue script if no halt
 INSTALL_ICON="/usr/share/icons/zenity-llcc.png"
 APPNAME="Linux Lite"
 
 zenity --question --title="$APPNAME Updates" --window-icon="${INSTALL_ICON}" --text="${INSTALLER_TITLE}"
 
 if [ "$?" -eq "0" ]; then
 
 x=$( stdbuf -oL /bin/bash \-c '(sudo apt-get upgrade \-y )' 2>&1 | tee /var/log/llupdates.log |
 stdbuf -oL sed -n -e '/\[*$/ s/^/# /p' -e '/\*$/ s/^/# /p'|
 zenity --progress --title="Updating..." --pulsate \
 --width=600 --auto-close )
 
 if [ "${PIPESTATUS[0]}" -ne "0" ]; then
 
 zenity --error \
 --title="Error" --text="$APPNAME Updates have failed."
 exit 0
 fi
 
 else
 
 exit 0
 fi
 
 PROCEED=$(zenity --question --title="$APPNAME Updates" --window-icon=/usr/share/icons/zenity-llcc.png --text="Updates have finished installing.\n\nWould you like to view the $APPNAME Updates log?"; echo $?)
 if [ ${PROCEED} -eq 1 ]; then
 zenity --info --title="$APPNAME Updates" --window-icon="${INSTALL_ICON}" --text="$APPNAME Updates Complete."
 exit;
 else
 zenity --text-info --title="Updates Log" --width=700 --height=300 --filename="/var/log/llupdates.log"
 fi
 
 exit 0
Here you've used the title to give info on the next step
 Code: zenity --text-info --title="List of available Updates - Click OK to continue or Cancel to stop the update process" --width=700 --height=300 --filename="/tmp/updateslist "
There is another approach 
I've used stream editor in the script to insert two lines into /tmp/updateslist
 Code: #Insert text into  /tmp/updateslistsed -i -e '1 i\#########                     List of available Updates                                           ##############' -e '1 i\#########  Click OK to continue or Cancel to stop the update process         ##############' /tmp/updateslist
 
	
	
	
		
	Posts: 9,005 
	Threads: 567 
	Joined: Feb 2014
	
 Reputation: 
12 
	
	
		I think I prefer the existing method of handling the gdebi/synaptic check, it's simpler and quicker. 
Also running your new code I still get the 'List of available Updates - Click OK to continue or Cancel to stop the update process' existing dialog, not your new one, but this time it's empty when there are lots of updates for my machine:
 ![[Image: afOCnyA.png]](http://i.imgur.com/afOCnyA.png)  |