#!/bin/sh
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Bugzilla Bug Tracking System.
#
# The Initial Developer of the Original Code is 
# Andreas Franke <afranke@mathweb.org>.
# Corporation. Portions created by Andreas Franke are
# Copyright (C) 2001,2005 Andreas Franke. All
# Rights Reserved.
#
# Contributor(s): 

thisdir=`dirname "$0"`
buglist="$thisdir/buglist"
csvfile="$thisdir/buglist.csv"

$thisdir/buglist "$@" 2>&1 1>${csvfile}
if test "$?" != "0"; then cat "$csvfile" 1>&2; exit 1; fi

# 1. use 'awk' to select the first column (bug_id)
# 2. use 'grep -v' to remove the first line with the column headers
# 3. use backquotes & 'echo' to get all values in one line, space separated
echo `cat ${csvfile} | awk -F, '{printf $1 "\n"}' | grep -v bug_id`
