From owner-freebsd-questions@FreeBSD.ORG Thu Aug 3 21:57:58 2006 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8238B16A4DF for ; Thu, 3 Aug 2006 21:57:58 +0000 (UTC) (envelope-from freebsd@philip.pjkh.com) Received: from bravo.pjkh.com (bravo.pjkh.com [72.36.232.219]) by mx1.FreeBSD.org (Postfix) with ESMTP id 43A2E43D58 for ; Thu, 3 Aug 2006 21:57:55 +0000 (GMT) (envelope-from freebsd@philip.pjkh.com) Received: from bravo.pjkh.com (bravo.pjkh.com [72.36.232.219]) by bravo.pjkh.com (Postfix) with ESMTP id D05C313C7D0; Thu, 3 Aug 2006 17:03:04 -0500 (CDT) Received: by bravo.pjkh.com (Postfix, from userid 1000) id 7ADE213C7C5; Thu, 3 Aug 2006 17:03:04 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by bravo.pjkh.com (Postfix) with ESMTP id 79C8213C7BF; Thu, 3 Aug 2006 17:03:04 -0500 (CDT) Date: Thu, 3 Aug 2006 17:03:04 -0500 (CDT) From: Philip Hallstrom To: User Freebsd In-Reply-To: <20060803180553.B6529@ganymede.hub.org> Message-ID: <20060803165843.V98843@bravo.pjkh.com> References: <20060803180553.B6529@ganymede.hub.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: ClamAV using ClamSMTP Cc: freebsd-questions@freebsd.org Subject: Re: Stand up and be counted - BSDStats Project X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Aug 2006 21:57:58 -0000 > pciconf -lv needs to be parsed, this being the hard step, into a string that > can be sent via HTTP ... this is the hard part because it has to be done > as/in a shell script ... anyone out there *really* good at shell programming? > > What needs to happen is: > > pcib4@pci6:0:2: class=0x060400 card=0x00000044 chip=0x032a8086 rev=0x09 > hdr=0x01 > vendor = 'Intel Corporation' > device = '6700PXH PCI Express-to-PCI Express Bridge B' > class = bridge > subclass = PCI-PCI > > Needs to be converted into: > > device=pcib&vendor=Intel+Corporation&device=6700PXH+PCI+Express-to-PCI+Express+Bridge+B&class=bridge&subclass=PCI-PCI > > So that the final query would look something like: > > fetch http://bsdstats.hub.org/report.php?id=`cat > /tmp/getid`&device=pcib&vendor=Intel+Corporation&device=6700PXH+PCI+Express-to-PCI+Express+Bridge+B&class=bridge&subclass=PCI-PCI This will get you close. Just change the "echo" line... ---------------------------------------------------------------------------------------------- #!/bin/sh IFS=" " query_string="" for line in `pciconf -lv` do echo $line | grep -qs "^[a-z]" if [ $? -eq 0 ] then if [ -n "$query_string" ] then echo "http://foo.com/bar.php?"$query_string query_string="" fi else query_string=$query_string`echo $line | sed -e 's/^ *//' -e 's/ *=/=/' -e 's/= */=/' -e 's/ $//'`"&" fi done ----------------------------------------------------------------------------------------------