Support Requests - CLICK TO READ BEFORE POSTING


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

GUI Updates script
#11

(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 Smile
Here you go, pall. Smile
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
Reply
#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 Smile
Here you go, pall. Smile
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 Smile

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#13

New versions uploaded, credits to misko in the updates script.

First post script updated too.

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#14

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://mityer.khdlhfjijfrupr.tk #----------------------------------------------------------------------------------------- # 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
Reply
#15

I have 1.06 can i run the script or? /ivar
Reply
#16

(11-22-2014, 12:38 AM)iwar link Wrote:  I have 1.06 can i run the script or? /ivar

You can.

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#17

Some nice additions there misko Smile I think we should remove the checklist though, new folk could interrupt this incorrectly.

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#18

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]

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#19

(11-22-2014, 06:39 AM)Jerry link Wrote:  Some nice additions there misko Smile I think we should remove the checklist though, new folk could interrupt this incorrectly.
OK, checklist is removed Smile
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://mityer.khdlhfjijfrupr.tk #----------------------------------------------------------------------------------------- # 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/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
Reply
#20

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]

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)