/usr/sbin
NameSizeModeActions
accessdb128880755editdlrm
accton140160755editdlrm
addgnupghome30750755editdlrm
addpart254560755editdlrm
adduser1517200755editdlrm
agetty638880755editdlrm
alternatives375360755editdlrm
anacron419760755editdlrm
apachectl48040755editdlrm
applygnupgdefaults22170755editdlrm
arp662640755editdlrm
arpd1121520755editdlrm
arping294320755editdlrm
atd334080755editdlrm
atrun670755editdlrm
authconfig220570755editdlrm
avcstat167920755editdlrm
badblocks333680755editdlrm
blkdeactivate163510555editdlrm
blkdiscard297520755editdlrm
blkid1010240755editdlrm
blkmapd547520755editdlrm
blkzone509440755editdlrm
blockdev422960755editdlrm
bridge1620480755editdlrm
build-locale-archive8612480700editdlrm
capsh332240755editdlrm
cfdisk1007680755editdlrm
chcpu295200755editdlrm
chgpasswd713600755editdlrm
chkconfig461920755editdlrm
chpasswd628960755editdlrm
chroot424480755editdlrm
clock667840755editdlrm
clockdiff209200755editdlrm
consoletype121440755editdlrm
convertquota805680755editdlrm
cracklib-check133600755editdlrm
cracklib-format2510755editdlrm
cracklib-packer133680755editdlrm
cracklib-unpacker92480755editdlrm
create-cracklib-dict9900755editdlrm
crond757120755editdlrm
csf2509790700editdlrm
ctrlaltdel253840755editdlrm
ctstat259360755editdlrm
dcb1587600755editdlrm
ddns-confgen209520755editdlrm
debugfs2371840755editdlrm
delpart254560755editdlrm
depmod1637840755editdlrm
devlink2210480755editdlrm
dhclient4645680755editdlrm
dhclient-script336460755editdlrm
dmfilemapd251360555editdlrm
dmsetup1624480555editdlrm
dmstats1624480555editdlrm
dnssec-checkds9360755editdlrm
dnssec-coverage9380755editdlrm
dnssec-dsfromkey623040755editdlrm
dnssec-importkey622960755editdlrm
dnssec-keyfromlabel663120755editdlrm
dnssec-keygen745840755editdlrm
dnssec-keymgr9340755editdlrm
dnssec-revoke581040755editdlrm
dnssec-settime623040755editdlrm
dnssec-signzone1200160755editdlrm
dnssec-verify541120755editdlrm
dovecot1660720755editdlrm
dovecot_cpshutdown33440755editdlrm
dpkg-fsys-usrunmess123990755editdlrm
dump-acct298480755editdlrm
dump-utmp256160755editdlrm
dumpe2fs332960755editdlrm
e2freefrag168160755editdlrm
e2fsck3364000755editdlrm
e2image374880755editdlrm
e2label1132800755editdlrm
e2mmpstatus332960755editdlrm
e2undo208640755editdlrm
e4crypt251360755editdlrm
e4defrag291760755editdlrm
edquota934320755editdlrm
ether-wake757680755editdlrm
ethtool5711760755editdlrm
exicyclog113650755editdlrm
exigrep117100755editdlrm
exim17050964755editdlrm
eximstats1525460755editdlrm
exim_checkaccess49430755editdlrm
exim_dbmbuild246880755editdlrm
exim_dumpdb601120755editdlrm
exim_fixdb656560755editdlrm
exim_lock272240755editdlrm
exim_tidydb561200755editdlrm
exinext82170755editdlrm
exiqgrep67390755editdlrm
exiqsumm64430755editdlrm
exiwhat45240755editdlrm
exportfs843520755editdlrm
faillock210160755editdlrm
fcgistarter175200755editdlrm
fdformat339680755editdlrm
fdisk1340480755editdlrm
filefrag168560755editdlrm
findfs126720755editdlrm
fix-info-dir80330755editdlrm
fixfiles107270755editdlrm
fsck547520755editdlrm
fsck.cramfs424080755editdlrm
fsck.ext23364000755editdlrm
fsck.ext33364000755editdlrm
fsck.ext43364000755editdlrm
fsck.minix1011200755editdlrm
fsfreeze167760755editdlrm
fstrim507920755editdlrm
fuse2fs720800755editdlrm
fuser390560755editdlrm
g13-syshelp1943120755editdlrm
genhomedircon299760755editdlrm
genhostid121440755editdlrm
genl1243200755editdlrm
genrandom126720755editdlrm
getcap126480755editdlrm
getenforce80240755editdlrm
getpcaps125680755editdlrm
getsebool121520755editdlrm
groupadd976320755editdlrm
groupdel932800755editdlrm
groupmems629600755editdlrm
groupmod1017600755editdlrm
grpck629440755editdlrm
grpconv586400755editdlrm
grpunconv586320755editdlrm
grub2-bios-setup12139840755editdlrm
grub2-get-kernel-settings27420755editdlrm
grub2-install15114640755editdlrm
grub2-mkconfig88880755editdlrm
grub2-probe12139280755editdlrm
grub2-reboot40850755editdlrm
grub2-rpm-sort2899360755editdlrm
grub2-set-bootflag167444755editdlrm
grub2-set-default35350755editdlrm
grub2-set-password31190755editdlrm
grub2-setpassword31190755editdlrm
grub2-switch-to-blscfg88090755editdlrm
grubby2600755editdlrm
gss-server252000755editdlrm
gssproxy1352480755editdlrm
halt2236960755editdlrm
hardlink174960755editdlrm
htcacheclean454240755editdlrm
httpd10152560755editdlrm
hwclock667840755editdlrm
iconvconfig338400755editdlrm
ifconfig828000755editdlrm
ifdown21230755editdlrm
ifenslave255440755editdlrm
ifstat1204960755editdlrm
ifup54630755editdlrm
init16136240755editdlrm
insmod1637840755editdlrm
install-info514320755editdlrm
installkernel3230755editdlrm
ip7099440755editdlrm
ip6tables943920755editdlrm
ip6tables-legacy943920755editdlrm
ip6tables-legacy-restore943920755editdlrm
ip6tables-legacy-save943920755editdlrm
ip6tables-restore943920755editdlrm
ip6tables-save943920755editdlrm
ipmaddr215040755editdlrm
ipset92240755editdlrm
iptables943920755editdlrm
iptables-legacy943920755editdlrm
iptables-legacy-restore943920755editdlrm
iptables-legacy-save943920755editdlrm
iptables-restore943920755editdlrm
iptables-save943920755editdlrm
iptraf-ng1891040755editdlrm
iptunnel256000755editdlrm
isc-hmac-fixup121440755editdlrm
key.dns_resolver251040755editdlrm
kpartx502320755editdlrm
lchage168000755editdlrm
ldattach337840755editdlrm
ldconfig10097680755editdlrm
lfd3916290700editdlrm
lgroupadd121600755editdlrm
lgroupdel121600755editdlrm
lgroupmod203520755editdlrm
lid166640755editdlrm
lnewusers203440755editdlrm
lnstat259360755editdlrm
load_policy125760755editdlrm
logrotate952640755editdlrm
logsave168000755editdlrm
losetup927680755editdlrm
lpasswd208400755editdlrm
lsmod1637840755editdlrm
luseradd203520755editdlrm
luserdel162560755editdlrm
lusermod203600755editdlrm
lwresd8611200755editdlrm
mariadbd254524800755editdlrm
matchpathcon126640755editdlrm
mii-diag260080755editdlrm
mii-tool215360755editdlrm
mkdict2510755editdlrm
mke2fs1417680755editdlrm
mkfs168720755editdlrm
mkfs.cramfs422560755editdlrm
mkfs.ext21417680755editdlrm
mkfs.ext31417680755editdlrm
mkfs.ext41417680755editdlrm
mkfs.minix886400755editdlrm
mkhomedir_helper250240755editdlrm
mklost+found121440755editdlrm
mkswap885520755editdlrm
modinfo1637840755editdlrm
modprobe1637840755editdlrm
modsec-sdbm-util264480750editdlrm
mount.nfs2019764755editdlrm
mount.nfs42019764755editdlrm
mountstats432370755editdlrm
mysqld254524800755editdlrm
named8611200755editdlrm
named-checkconf417680755editdlrm
named-checkzone375120755editdlrm
named-compilezone375120755editdlrm
named-journalprint121360755editdlrm
nameif173840755editdlrm
newusers1098000755editdlrm
nfsconf383760755editdlrm
nfsconvert133470755editdlrm
nfsdcld674480755editdlrm
nfsdclddb102420755editdlrm
nfsdclnts92330755editdlrm
nfsdcltrack509760755editdlrm
nfsidmap464480755editdlrm
nfsiostat239220755editdlrm
nfsref673760755editdlrm
nfsstat363680755editdlrm
nft249920755editdlrm
nologin121520755editdlrm
nscd1604480755editdlrm
nsec3hash125840755editdlrm
nstat1162960755editdlrm
ntsysv419520755editdlrm
oddjobd794960755editdlrm
packer133680755editdlrm
pam_console_apply462800755editdlrm
pam_timestamp_check121524755editdlrm
paperconfig41700755editdlrm
partx967680755editdlrm
pidof170960755editdlrm
ping677120755editdlrm
ping6677120755editdlrm
pivot_root126800755editdlrm
plipconfig130160755editdlrm
pluginviewer210640755editdlrm
poweroff2236960755editdlrm
pure-authd196960755editdlrm
pure-certd196000755editdlrm
pure-config.pl47550755editdlrm
pure-ftpd1864400755editdlrm
pure-ftpwho274720755editdlrm
pure-mrtginfo114320755editdlrm
pure-quotacheck192720755editdlrm
pure-uploadscript195360755editdlrm
pwck586400755editdlrm
pwconv543760755editdlrm
pwhistory_helper209200755editdlrm
pwunconv544000755editdlrm
quot805600755editdlrm
quotacheck1185280755editdlrm
quotaoff851520755editdlrm
quotaon851520755editdlrm
quotastats169360755editdlrm
rcmysql-0editdlrm
rdisc251360755editdlrm
rdma1918800755editdlrm
readprofile210400755editdlrm
reboot2236960755editdlrm
repquota852400755editdlrm
request-key249680755editdlrm
resize2fs664720755editdlrm
resizepart425680755editdlrm
resolvconf2004480755editdlrm
restorecon210240755editdlrm
restorecon_xattr168080755editdlrm
rfkill547440755editdlrm
rmmod1637840755editdlrm
rndc374080755editdlrm
rndc-confgen209360755editdlrm
rotatelogs312400755editdlrm
route692480755editdlrm
rpc.gssd1090960755editdlrm
rpc.idmapd632160755editdlrm
rpc.mountd1669520755editdlrm
rpc.nfsd511200755editdlrm
rpc.statd1057760755editdlrm
rpcbind630240755editdlrm
rpcctl96310755editdlrm
rpcdebug198400755editdlrm
rpcinfo334240755editdlrm
rsyslogd7421200755editdlrm
rtacct480640755editdlrm
rtcwake504880755editdlrm
rtmon1200800755editdlrm
rtstat259360755editdlrm
runlevel2236960755editdlrm
runq17050964755editdlrm
runuser501680755editdlrm
sa477360755editdlrm
safe_finger128800755editdlrm
saslauthd966880755editdlrm
sasldblistusers2212640755editdlrm
saslpasswd2168160755editdlrm
sefcontext_compile669200755editdlrm
selabel_digest125760755editdlrm
selabel_lookup125680755editdlrm
selabel_lookup_best_match121760755editdlrm
selabel_partial_match121680755editdlrm
selinuxconlist121600755editdlrm
selinuxdefcon121600755editdlrm
selinuxenabled80240755editdlrm
selinuxexeccon121440755editdlrm
selinux_check_access126560755editdlrm
semanage421710755editdlrm
semodule299760755editdlrm
sendmail173202755editdlrm
service37290755editdlrm
sestatus209040755editdlrm
setcap166640755editdlrm
setenforce125600755editdlrm
setfiles210240755editdlrm
setquota935680755editdlrm
setsebool167680755editdlrm
sfdisk1213520755editdlrm
showmount215680755editdlrm
shutdown2236960755editdlrm
sim_server121520755editdlrm
slattach448080755editdlrm
sm-notify800080755editdlrm
smartctl9241200755editdlrm
smartd7419840755editdlrm
snmpd332320755editdlrm
snmptrapd333840755editdlrm
ss1958880755editdlrm
sshd8905680755editdlrm
start-statd8380755editdlrm
start-stop-daemon470880755editdlrm
suexec259044755editdlrm
sulogin504240755editdlrm
suphp68817604750editdlrm
swaplabel168960755editdlrm
swapoff212480755editdlrm
swapon505920755editdlrm
switch_root168880755editdlrm
sysctl295680755editdlrm
t1libconfig39210755editdlrm
tcpd432560755editdlrm
tcpdmatch475760755editdlrm
tcpdump10570720755editdlrm
tcpslice334160755editdlrm
tcsd3171520755editdlrm
telinit2236960755editdlrm
testsaslauthd170560755editdlrm
tipc1669840755editdlrm
tmpwatch363200755editdlrm
tracepath209280755editdlrm
tracepath6209280755editdlrm
try-from256320755editdlrm
tsig-keygen209520755editdlrm
tune2fs1132800755editdlrm
udevadm4347520755editdlrm
umount.nfs2019764755editdlrm
umount.nfs42019764755editdlrm
unbound-anchor587120755editdlrm
unix_chkpwd377444755editdlrm
unix_update377440700editdlrm
update-alternatives375360755editdlrm
update-smart-drivedb147820755editdlrm
useradd1517200755editdlrm
userdel1098640755editdlrm
userhelper459364711editdlrm
usermod1475680755editdlrm
usernetctl127044755editdlrm
uuserver162560755editdlrm
vdpa1208720755editdlrm
vigr696880755editdlrm
vipw696880755editdlrm
visudo2450240755editdlrm
weak-modules344100755editdlrm
whmapi034969120755editdlrm
whmapi134969120755editdlrm
whmlogin23900755editdlrm
wipefs421040755editdlrm
xinetd1804000755editdlrm
xqmstats168480755editdlrm
xtables-legacy-multi943920755editdlrm
zdump210560755editdlrm
zic540960755editdlrm
zramctl1015040755editdlrm
Edit: /usr/sbin/update-smart-drivedb (14782B)
#! /bin/sh # # smartmontools drive database update script # # Home page of code is: http://www.smartmontools.org # # Copyright (C) 2010-19 Christian Franke # # SPDX-License-Identifier: GPL-2.0-or-later # # $Id: update-smart-drivedb.in 5002 2019-12-13 20:14:51Z chrfranke $ # set -e # Set by config.status export PATH="/usr/local/bin:/usr/bin:/bin" PACKAGE="smartmontools" VERSION="7.1" prefix="/usr" exec_prefix="/usr" sbindir="/usr/sbin" datarootdir="${prefix}/share" datadir="/usr/share" drivedbdir="${datadir}/${PACKAGE}" # Download tools os_dltools="curl wget lynx svn" # drivedb.h update branch BRANCH="RELEASE_7_0_DRIVEDB" # Default drivedb location DRIVEDB="$drivedbdir/drivedb.h" # GnuPG used to verify signature (disabled if empty) GPG="gpg" # Smartctl used for syntax check SMARTCTL="$sbindir/smartctl" # PATH information for help and error messages #pathinfo='$PATH' pathinfo="'$PATH'" myname=$0 usage() { pathinfo=" $pathinfo" cat <&2 exit 1 } err_notfound() { case $1 in */*) error "$1: not found $2" ;; *) error "$1: not found in $pathinfo $2" ;; esac } warning() { echo "$myname: (Warning) $*" >&2 } selecturl() { case $1 in github) # https://github.com/smartmontools/smartmontools/raw/origin/$BRANCH/smartmontools/drivedb.h # https://github.com/smartmontools/smartmontools/raw/master/smartmontools/drivedb.h # redirected to: url='https://raw.githubusercontent.com/smartmontools/smartmontools/master/smartmontools/drivedb.h' ;; sf) url='https://sourceforge.net/p/smartmontools/code/HEAD/tree/trunk/smartmontools/drivedb.h?format=raw' ;; svn) url='https://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools/drivedb.h' ;; svni) url='http://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools/drivedb.h' ;; trac) url='https://www.smartmontools.org/export/HEAD/trunk/smartmontools/drivedb.h' ;; *) usage ;; esac } inpath() { local d rc save rc=1 save=$IFS IFS=':' for d in $PATH; do test -f "$d/$1" || continue test -x "$d/$1" || continue rc=0 break done IFS=$save return $rc } vecho() { test -n "$q" || echo "$*" } # vrun COMMAND ARGS... vrun() { if [ -n "$dryrun" ]; then echo "$*" elif [ -n "$q" ]; then "$@" 2>/dev/null else echo "$*" "$@" fi } # vrun2 OUTFILE COMMAND ARGS... vrun2() { local f err rc f=$1; shift rc=0 if [ -n "$dryrun" ]; then echo "$* > $f" else vecho "$* > $f" err=`"$@" 2>&1 > $f` || rc=$? if [ -n "$err" ]; then vecho "$err" >&2 test $rc != 0 || rc=42 fi fi return $rc } # download URL FILE download() { local f u rc u=$1; f=$2 rc=0 case $tool in curl) vrun curl ${q:+-s} -f --max-redirs 0 \ ${cacert:+--cacert "$cacert"} \ ${capath:+--capath "$capath"} \ ${insecure:+--insecure} \ -o "$f" "$u" || rc=$? ;; wget) vrun wget $q --max-redirect=0 \ ${cacert:+--ca-certificate="$cacert"} \ ${capath:+--ca-directory="$capath"} \ ${insecure:+--no-check-certificate} \ -O "$f" "$u" || rc=$? ;; lynx) test -z "$cacert" || vrun export SSL_CERT_FILE="$cacert" test -z "$capath" || vrun export SSL_CERT_DIR="$capath" # Check also stderr as lynx does not return != 0 on HTTP error vrun2 "$f" lynx -stderr -noredir -source "$u" || rc=$? ;; svn) vrun svn $q export \ --non-interactive --no-auth-cache \ ${cacert:+--config-option "servers:global:ssl-trust-default-ca=no"} \ ${cacert:+--config-option "servers:global:ssl-authority-files=$cacert"} \ ${insecure:+--trust-server-cert} \ "$u" "$f" || rc=$? ;; fetch) # FreeBSD vrun fetch $q --no-redirect \ ${cacert:+--ca-cert "$cacert"} \ ${capath:+--ca-path "$capath"} \ ${insecure:+--no-verify-hostname} \ -o "$f" "$u" || rc=$? ;; ftp) # OpenBSD vrun ftp \ ${cacert:+-S cafile="$cacert"} \ ${capath:+-S capath="$capath"} \ ${insecure:+-S dont} \ -o "$f" "$u" || rc=$? ;; *) error "$tool: unknown (internal error)" ;; esac return $rc } # check_file FILE FIRST_CHAR MIN_SIZE MAX_SIZE check_file() { local firstchar f maxsize minsize size test -z "$dryrun" || return 0 f=$1; firstchar=$2; minsize=$3; maxsize=$4 # Check first chars case `dd if="$f" bs=1 count=1 2>/dev/null` in $firstchar) ;; \<) echo "HTML error message"; return 1 ;; *) echo "unknown file contents"; return 1 ;; esac # Check file size size=`wc -c < "$f"` if test "$size" -lt $minsize; then echo "too small file size $size bytes" return 1 fi if test "$size" -gt $maxsize; then echo "too large file size $size bytes" return 1 fi return 0 } # unexpand_svn_id < INFILE > OUTFILE unexpand_svn_id() { sed 's,\$''Id'': drivedb\.h [0-9][0-9]* 2[-0-9]* [012][:0-9]*Z [a-z][a-z0-9]* \$,$''Id''$,' } # Smartmontools Signing Key (through 2020) # # Key ID 721042C5 public_key="\ -----BEGIN PGP PUBLIC KEY BLOCK----- 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 =0uFV -----END PGP PUBLIC KEY BLOCK----- " # gpg_verify FILE.asc FILE gpg_verify() { local gnupgtmp opts out rc opts="--quiet ${q:+--no-secmem-warnin} --batch --no-tty" # Create temp home dir gnupgtmp="$tmpdir/.gnupg.$$.tmp" rm -f -r "$gnupgtmp" mkdir "$gnupgtmp" || exit 1 chmod 0700 "$gnupgtmp" # Import public key "$GPG" $opts --homedir="$gnupgtmp" --import <&1` || rc=1 if [ $rc = 0 ]; then vecho "$out" else # print gpg error always echo "$out" >&2 fi rm -f -r "$gnupgtmp" return $rc } # mv_all PREFIX OLD NEW mv_all() { mv "${1}${2}" "${1}${3}" mv "${1}${2}.raw" "${1}${3}.raw" mv "${1}${2}.raw.asc" "${1}${3}.raw.asc" } # Parse options smtctl=$SMARTCTL tool= url= q="-q" dryrun= trunk= cacert= capath= insecure= no_verify= while true; do case $1 in -s) shift; test -n "$1" || usage smtctl=$1 ;; -t) shift case $1 in *\ *) usage ;; esac case " $os_dltools " in *\ $1\ *) ;; *) usage ;; esac tool=$1 ;; -u) shift; selecturl "$1" ;; -v) q= ;; --dryrun) dryrun=t ;; --trunk) trunk=trunk ;; --cacert) shift; test -n "$1" || usage cacert=$1 ;; --capath) shift; test -n "$1" || usage capath=$1 ;; --insecure) insecure=t ;; --no-verify) no_verify=t ;; --export-key) cat </dev/null 2>&1 \ || err_notfound "$smtctl" "('-s -' to ignore)" fi # Check for GnuPG if [ -z "$no_verify" ]; then test -n "$GPG" \ || error "GnuPG is not available ('--no-verify' to ignore)" "$GPG" --version >/dev/null 2>&1 \ || err_notfound "$GPG" "('--no-verify' to ignore)" fi # Use destination directory as temp directory for gpg tmpdir=`dirname "$DEST"` # Adjust URLs src=`echo "$url" | sed -e "s,/trunk/,/branches/$BRANCH/," \ -e "s,/master/,/origin/$BRANCH/,"` src_asc=`echo "$src" | sed "s,/drivedb\.h,/drivedb.h.raw.asc,"` test -z "$trunk" || src=$url # Download test -n "$dryrun" || rm -f "$DEST.new" "$DEST.new.raw" "$DEST.new.raw.asc" vecho "Download ${trunk:-branches/$BRANCH}/drivedb.h with $tool" rc=0 download "$src" "$DEST.new" || rc=$? if [ $rc != 0 ]; then rm -f "$DEST.new" error "${trunk:-$BRANCH}/drivedb.h: download failed ($tool: exit $rc)" fi if ! errmsg=`check_file "$DEST.new" '/' 10000 1000000`; then mv "$DEST.new" "$DEST.error" error "$DEST.error: $errmsg" fi vecho "Download branches/$BRANCH/drivedb.h.raw.asc with $tool" rc=0 download "$src_asc" "$DEST.new.raw.asc" || rc=$? if [ $rc != 0 ]; then rm -f "$DEST.new" "$DEST.new.raw.asc" error "$BRANCH/drivedb.h.raw.asc: download failed ($tool: exit $rc)" fi if ! errmsg=`check_file "$DEST.new.raw.asc" '-' 200 2000`; then rm -f "$DEST.new" mv "$DEST.new.raw.asc" "$DEST.error.raw.asc" error "$DEST.error.raw.asc: $errmsg" fi test -z "$dryrun" || exit 0 # Create raw file with unexpanded SVN Id # (This assumes newlines are LF and not CR/LF) unexpand_svn_id < "$DEST.new" > "$DEST.new.raw" # Adjust timestamps and permissions touch "$DEST.new" "$DEST.new.raw" "$DEST.new.raw.asc" chmod 0644 "$DEST.new" "$DEST.new.raw" "$DEST.new.raw.asc" if [ -z "$no_verify" ]; then # Verify raw file if ! gpg_verify "$DEST.new.raw.asc" "$DEST.new.raw"; then mv_all "$DEST" ".new" ".error" test -n "$trunk" || error "$DEST.error.raw: *** BAD signature or outdated key ***" error "$DEST.error.raw: signature from branch no longer valid ('--no-verify' to ignore)" fi fi if [ "$smtctl" != "-" ]; then # Check syntax if ! "$smtctl" -B "$DEST.new" -P showall >/dev/null; then mv_all "$DEST" ".new" ".error" error "$DEST.error: rejected by $smtctl, probably no longer compatible" fi vecho "$smtctl: syntax OK" fi # Keep old file if identical, ignore missing Id keyword expansion in new file rm -f "$DEST.lastcheck" if [ -f "$DEST" ]; then if [ -f "$DEST.raw" ] && [ -f "$DEST.raw.asc" ]; then if cmp "$DEST.raw" "$DEST.new.raw" >/dev/null 2>&1 \ && cmp "$DEST.raw.asc" "$DEST.new.raw.asc" >/dev/null 2>&1 \ && { cmp "$DEST" "$DEST.new" >/dev/null 2>&1 \ || cmp "$DEST.raw" "$DEST.new" >/dev/null 2>&1; } then rm -f "$DEST.new" "$DEST.new.raw" "$DEST.new.raw.asc" touch "$DEST.lastcheck" echo "$DEST is already up to date" exit 0 fi mv_all "$DEST" "" ".old" else mv "$DEST" "$DEST.old" fi fi mv_all "$DEST" ".new" "" echo "$DEST updated from ${trunk:-branches/$BRANCH}${no_verify:+ (NOT VERIFIED)}"