Annotation of embedaddon/pciutils/update-pciids.sh, revision 1.1.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>