Support Requests - CLICK TO READ BEFORE POSTING


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

GUI Updates script
#51

OK how about now? First dialog is removed.
Code:
#!/bin/bash #----------------------------------------------------------------------------------------- # Name: Linux Lite Updates # Description: A GUI tool to easily install Updates in Linux Lite. # Authors: Misko_2083, Jerry Bezencon # Date: 2015 # 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 UPDATES=$(mktemp /tmp/updateslist.XXXXXX) # Linux Lite default dialog icon ic="/usr/share/icons/zenity-llcc.png" APTUPDATE=$( stdbuf -oL /bin/bash \-c '(sudo apt-get update \-y )' 2>&1 | stdbuf -oL sed -n -e 's/^\(.\{64\}\).*/\1/' -e '/\[*$/ s/^/# /p' -e '/\*$/ s/^/# /p' |    #sed 's/^\(.\{64\}\).*/\1/'  Display only the first 64 characters zenity --progress --title="Updating package information..." --pulsate \ --width=600 --auto-close ) unset APTUPDATE # 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"}' | awk '{print NR,":\t"$0}' | tee $UPDATES) # Check if any updates are available, if there are none, script pops up dialog box saying 'No Updates Available', removes /tmp/updateslist.XXXXXX if [  -z "$(cat $UPDATES)"  ]; then     zenity --info --window-icon="/usr/share/icons/zenity-llcc.png" --title="Linux Lite Updates" \       --text="No Updates Available"   rm $UPDATES   exit 0 fi # Insert text into  /tmp/updateslist.XXXXXX sed -i -e '1 i\List of available Updates' -e '1 i\Click Update to continue or Cancel to stop the update process\n'  $UPDATES # Erase existing available info sudo dpkg --clear-avail # Call the zenity dialog to show update list zenity --text-info --ok-label="Update" --cancel-label="Cancel" --title="Linux Lite Updates" --width=780 --height=300 --filename="$UPDATES"       if [ "$?" -eq "0" ];then               # Continue script if no halt         INSTALL_ICON="/usr/share/icons/zenity-llcc.png"         APPNAME="Linux Lite Updates"                         #remove tmp file                 rm $UPDATES     RUNUPDATES=$( stdbuf -oL /bin/bash \-c '(sudo DEBIAN_FRONTEND=noninteractive apt-get  -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \-y )' 2>&1 | tee /var/log/llupdates.log |       stdbuf -oL sed -n -e 's/^\(.\{64\}\).*/\1/' -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       # Halt updates script if user selects Cancel       else         rm $UPDATES         unset UPDATES         unset RUNUPDATES         exit 0     fi unset UPDATES unset RUNUPDATES 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 --ok-label="Save Updates Log" --cancel-label="Close" --title="Updates Log" --width=700 --height=300 --filename="/var/log/llupdates.log"     if [ $? -ne 0 ]; then             exit;         else         #Generate the save list and on the first occurance of "FALSE" change it to "TRUE"         LL_LIST_D=(`awk -F':' '$3>=1000 && $3<=60000 {print "FALSE","/home/"$1}' /etc/passwd |sed '0,/FALSE/s/FALSE/TRUE/'`)             #Add optional save location         LL_LIST_H=(`awk -F':' '$3>=1000 && $3<=60000 {print "FALSE","/home/"$1"/Desktop"}' /etc/passwd`)                 save_location=$(zenity --title="System Report Save Location" --list --radiolist --text="Select save location:" --column="Select" --column="Save file location:" --width=325  --height=300 "${LL_LIST_D[@]}" "${LL_LIST_H[@]}")                 if [ $? -ne 0 ]; then             unset LL_LIST_D             unset  LL_LIST_H             unset save_location             exit 0               else                              #Extract username                       LL_USER=$(echo "$save_location" | cut -d'/' -f3)                                         # Add filename to the save path                       SAVE_PATH=$(echo $save_location| sed 's,.*,&\/var/log/llupdates.log,g')                                     #Checks if the file exists. If it does asks for confirmation.             if [  ! -z "$(echo $SAVE_PATH)" ]; then                 if zenity --question --title="$APPNAME Updates" --window-icon=/usr/share/icons/zenity-llcc.png --text="file ${SAVE_PATH} allready exists.\nWould you like to overwite the file?"; then                                                                 cp /var/log/llupdates.log $save_location                       chown $LL_USER  $SAVE_PATH    # Change the ownership to LL_USER                                     else                     unset save_location                     unset LL_LIST_D                     unset  LL_LIST_H                     unset SAVE_PATH                     unset LL_USER                     exit 1                 fi             else                                                cp /var/log/llupdates.log $save_location                 chown $LL_USER  $SAVE_PATH    # Change the ownership to LL_USER                                 fi                                                             fi     fi fi unset LL_LIST_D unset  LL_LIST_H unset SAVE_PATH unset LL_USER unset save_location exit 0
Reply
#52

A bit of a misunderstanding here Smile I'll break it down:

Choose to update or not > this refers to the original first dialogue, line 32:

Code:
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."

This is kept because someone may have clicked on the wrong item in the Menu, or decided against updating.

updates will run > self explanatory.

have the option at the end to view the log which should reside in /var/log - the default dialogue at the end of the file:

Code:
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 --ok-label="Quit" --cancel-label="Cancel" --title="Updates Log" --width=700 --height=300 --filename="/var/log/llupdates.log" fi

So we want to retain the original first dialogue and original logging method Smile If there is a bug, then the intuitive place to look is /var/log.

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
#53

Latest iteration:

- Added line 91
- Reverted to original log and first dialogue processes

Code:
#!/bin/bash #----------------------------------------------------------------------------------------- # Name: Linux Lite Updates # Description: A GUI tool to easily install Updates in Linux Lite. # Authors: Misko_2083, Jerry Bezencon # Date: February 21st, 2015 # 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 # Updates log variable UPDATES=$(mktemp /tmp/updateslist.XXXXXX) # 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 APTUPDATE=$( stdbuf -oL /bin/bash \-c '(sudo apt-get update \-y )' 2>&1 | stdbuf -oL sed -n -e 's/^\(.\{128\}\).*/\1/' -e '/\[*$/ s/^/# /p' -e '/\*$/ s/^/# /p' |    #sed 's/^\(.\{128\}\).*/\1/'  Display only the first 128 characters zenity --progress --title="Updating package information..." --pulsate \ --width=600 --auto-close ) unset APTUPDATE # 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"}' | awk '{print NR,":\t"$0}' | tee $UPDATES) # Check if any updates are available, if there are none, script pops up dialog box saying 'No Updates Available', removes /tmp/updateslist.XXXXXX if [  -z "$(cat $UPDATES)"  ]; then     zenity --info --window-icon="/usr/share/icons/zenity-llcc.png" --title="Linux Lite Updates" \       --text="No Updates Available"   rm $UPDATES   exit 0 fi # Insert text into  /tmp/updateslist.XXXXXX sed -i -e '1 i\List of available Updates' -e '1 i\Click Update to continue or Cancel to stop the update process\n'  $UPDATES # Erase existing available info sudo dpkg --clear-avail   else       exit 0   fi # Call the zenity dialog to show update list zenity --text-info --ok-label="Update" --cancel-label="Cancel" --title="Linux Lite Updates" --width=780 --height=300 --filename="$UPDATES"       if [ "$?" -eq "0" ];then               # Continue script if no halt         INSTALL_ICON="/usr/share/icons/zenity-llcc.png"         APPNAME="Linux Lite Updates"                         # Remove tmp file                 rm $UPDATES     RUNUPDATES=$( stdbuf -oL /bin/bash \-c '(sudo DEBIAN_FRONTEND=noninteractive apt-get  -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \-y )' 2>&1 | tee /var/log/llupdates.log |       stdbuf -oL sed -n -e 's/^\(.\{128\}\).*/\1/' -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 have failed."                                         exit 0                                 fi       # Halt updates script if user selects Cancel       else         rm $UPDATES         unset UPDATES         unset RUNUPDATES   zenity --info --title="Updates Cancelled" --window-icon="${INSTALL_ICON}" --text="Updates Cancelled."         exit 0     fi unset UPDATES unset RUNUPDATES PROCEED=$(zenity --question --title="$APPNAME" --window-icon=/usr/share/icons/zenity-llcc.png --text="Updates have finished installing.\n\nWould you like to view the $APPNAME log?"; echo $?) if [ ${PROCEED} -eq 1 ]; then   zenity --info --title="$APPNAME" --window-icon="${INSTALL_ICON}" --text="$APPNAME Complete."   exit; else   zenity --text-info --ok-label="Quit" --cancel-label="Cancel" --title="Updates Log" --width=700 --height=300 --filename="/var/log/llupdates.log" fi exit 0

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)