0 Members and 2 Guests are viewing this topic.
Can you please give me an example? (full script 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.linuxliteos.com#-----------------------------------------------------------------------------------------# Kill off any package managers that may be runningif [ "$(pidof synaptic)" ] then sudo killall -9 synaptic else echo""fiif [ -z "$(pgrep gdebi-gtk)" ]then echo ""else killall -9 gdebi-gtkfi# Linux Lite default dialog iconic="/usr/share/icons/zenity-llcc.png"# Get list of available updated packages then populate them to /tmp/updateslistzenity --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" ];thenx=$( 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/updateslistLISTNAMES=$(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 /tmp/updateslist)# Check if any updates are available, if there are none, script pops up dialog box saying 'No Updates Available', removes /tmp/updateslistif [ -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 0fi# Insert text into /tmp/updateslistsed -i -e '1 i\List of available Updates' -e '1 i\Click Update to continue or Cancel to stop the update process\n' /tmp/updateslist# Erase existing available infosudo dpkg --clear-avail else exit 0 fi# Call the zenity dialog to show update listzenity --text-info --ok-label="Update" --cancel-label="Cancel" --title="Linux Lite Updates" --width=780 --height=300 --filename="/tmp/updateslist" if [ "$?" -eq "0" ];then # Continue script if no halt INSTALL_ICON="/usr/share/icons/zenity-llcc.png" APPNAME="Linux Lite" #remove tmp file rm /tmp/updateslist x=$( stdbuf -oL /bin/bash \-c '(sudo DEBIAN_FRONTEND=noninteractive 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 # Halt updates script if user selects Cancel else rm /tmp/updateslist exit 0 fiPROCEED=$(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 exit 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 else exit fi else cp /var/log/llupdates.log $save_location fi fi fifiexit
Smart move Jerry What do yo think about adding the list dialog to copy the log file? Something like the list in the new system report.
x=$( stdbuf -oL /bin/bash \-c '(sudo apt-get upgrade \-y )' 2>&1 | tee /var/log/llupdates.log |
x=$( stdbuf -oL /bin/bash \-c '(sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade \-y )' 2>&1 | tee /var/log/llupdates.log |
#!/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.linuxliteos.com#-----------------------------------------------------------------------------------------# Kill off any package managers that may be runningif [ "$(pidof synaptic)" ] then sudo killall -9 synaptic else echo""fiif [ -z "$(pgrep gdebi-gtk)" ]then echo ""else killall -9 gdebi-gtkfi# Linux Lite default dialog iconic="/usr/share/icons/zenity-llcc.png"# Get list of available updated packages then populate them to /tmp/updateslistzenity --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" ];thenx=$( 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/updateslistLISTNAMES=$(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 /tmp/updateslist)# Check if any updates are available, if there are none, script pops up dialog box saying 'No Updates Available', removes /tmp/updateslistif [ -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 0fi# Insert text into /tmp/updateslistsed -i -e '1 i\List of available Updates' -e '1 i\Click Update to continue or Cancel to stop the update process\n' /tmp/updateslist# Erase existing available infosudo dpkg --clear-avail else exit 0 fi# Call the zenity dialog to show update listzenity --text-info --ok-label="Update" --cancel-label="Cancel" --title="Linux Lite Updates" --width=780 --height=300 --filename="/tmp/updateslist" if [ "$?" -eq "0" ];then # Continue script if no halt INSTALL_ICON="/usr/share/icons/zenity-llcc.png" APPNAME="Linux Lite" #remove tmp file rm /tmp/updateslist 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 # Halt updates script if user selects Cancel else rm /tmp/updateslist exit 0 fiPROCEED=$(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"fiexit 0
#!/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.linuxliteos.com#-----------------------------------------------------------------------------------------# Kill off any package managers that may be runningif [ "$(pidof synaptic)" ] then sudo killall -9 synaptic else echo""fiif [ -z "$(pgrep gdebi-gtk)" ]then echo ""else killall -9 gdebi-gtkfi# Linux Lite default dialog iconic="/usr/share/icons/zenity-llcc.png"# Get list of available updated packages then populate them to /tmp/updateslistzenity --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" ];thenx=$( 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/updateslistLISTNAMES=$(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 /tmp/updateslist)# Check if any updates are available, if there are none, script pops up dialog box saying 'No Updates Available', removes /tmp/updateslistif [ -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 0fi# Insert text into /tmp/updateslistsed -i -e '1 i\List of available Updates' -e '1 i\Click Update to continue or Cancel to stop the update process\n' /tmp/updateslist# Erase existing available infosudo dpkg --clear-avail else exit 0 fi# Call the zenity dialog to show update listzenity --text-info --ok-label="Update" --cancel-label="Cancel" --title="Linux Lite Updates" --width=780 --height=300 --filename="/tmp/updateslist" if [ "$?" -eq "0" ];then# Halt updates script if user selects Cancelelse rm /tmp/updateslist exit 0fi# 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" ]; thenx=$( 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 fiPROCEED=$(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"fiexit 0
zenity --text-info --ok-label="Update" --cancel-label="Drink beer"
#!/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.linuxliteos.com#-----------------------------------------------------------------------------------------# Kill off any package managers that may be runningif [ "$(pidof synaptic)" ] then sudo killall -9 synaptic else echo""fiif [ -z "$(pgrep gdebi-gtk)" ]then echo ""else killall -9 gdebi-gtkfi# Linux Lite default dialog iconic="/usr/share/icons/zenity-llcc.png"# Get list of available updated packages then populate them to /tmp/updateslistzenity --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" ];thenx=$( 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/updateslistLISTNAMES=$(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 /tmp/updateslist)# Check if any updates are available, if there are none, script pops up dialog box saying 'No Updates Available', removes /tmp/updateslistif [ -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 0fi# 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\n' /tmp/updateslist# Erase existing available infosudo dpkg --clear-avail else exit 0 fi# Call the zenity dialog to show update listzenity --text-info --title="Linux Lite Updates" --width=780 --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 Cancelelse rm /tmp/updateslist exit 0fi# 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" ]; thenx=$( 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 fiPROCEED=$(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"fiexit 0