Annotation of embedaddon/pciutils/update-pciids.sh, revision 1.1
1.1 ! misho 1: #!/bin/sh
! 2:
! 3: [ "$1" = "-q" ] && quiet=true || quiet=false
! 4:
! 5: set -e
! 6: SRC="http://pci-ids.ucw.cz/v2.2/pci.ids"
! 7: DEST=pci.ids
! 8: PCI_COMPRESSED_IDS=
! 9: GREP=grep
! 10:
! 11: # if pci.ids is read-only (because the filesystem is read-only),
! 12: # then just skip this whole process.
! 13: if ! touch ${DEST} >/dev/null 2>&1 ; then
! 14: ${quiet} || echo "${DEST} is read-only, exiting." 1>&2
! 15: exit 1
! 16: fi
! 17:
! 18: if [ "$PCI_COMPRESSED_IDS" -eq 1 ] ; then
! 19: DECOMP="cat"
! 20: SRC="$SRC.gz"
! 21: GREP=zgrep
! 22: elif which bzip2 >/dev/null 2>&1 ; then
! 23: DECOMP="bzip2 -d"
! 24: SRC="$SRC.bz2"
! 25: elif which gzip >/dev/null 2>&1 ; then
! 26: DECOMP="gzip -d"
! 27: SRC="$SRC.gz"
! 28: else
! 29: DECOMP="cat"
! 30: fi
! 31:
! 32: if which curl >/dev/null 2>&1 ; then
! 33: DL="curl -o $DEST.new $SRC"
! 34: ${quiet} && DL="$DL -s -S"
! 35: elif which wget >/dev/null 2>&1 ; then
! 36: DL="wget --no-timestamping -O $DEST.new $SRC"
! 37: ${quiet} && DL="$DL -q"
! 38: elif which lynx >/dev/null 2>&1 ; then
! 39: DL="eval lynx -source $SRC >$DEST.new"
! 40: else
! 41: echo >&2 "update-pciids: cannot find curl, wget or lynx"
! 42: exit 1
! 43: fi
! 44:
! 45: if ! $DL ; then
! 46: echo >&2 "update-pciids: download failed"
! 47: rm -f $DEST.new
! 48: exit 1
! 49: fi
! 50:
! 51: if ! $DECOMP <$DEST.new >$DEST.neww ; then
! 52: echo >&2 "update-pciids: decompression failed, probably truncated file"
! 53: exit 1
! 54: fi
! 55:
! 56: if ! $GREP >/dev/null "^C " $DEST.neww ; then
! 57: echo >&2 "update-pciids: missing class info, probably truncated file"
! 58: exit 1
! 59: fi
! 60:
! 61: if [ -f $DEST ] ; then
! 62: mv $DEST $DEST.old
! 63: # --reference is supported only by chmod from GNU file, so let's ignore any errors
! 64: chmod -f --reference=$DEST.old $DEST.neww 2>/dev/null || true
! 65: fi
! 66: mv $DEST.neww $DEST
! 67: rm $DEST.new
! 68:
! 69: # Older versions did not compress the ids file, so let's make sure we
! 70: # clean that up.
! 71: if [ ${DEST%.gz} != ${DEST} ] ; then
! 72: rm -f ${DEST%.gz} ${DEST%.gz}.old
! 73: fi
! 74:
! 75: ${quiet} || echo "Done."
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>