#!/bin/bash

# This file is part of util-linux.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

TS_TOPDIR="${0%/*}/../.."
TS_DESC="mk-rm-msg"

. $TS_TOPDIR/functions.sh
ts_init "$*"

ts_check_test_command "$TS_CMD_IPCS"
ts_check_test_command "$TS_CMD_IPCMK"
ts_check_test_command "$TS_CMD_IPCRM"

. $TS_SELF/functions.sh

rm -f $TS_OUTDIR/id-msg
$TS_CMD_IPCMK -Q 2>>$TS_OUTPUT | ipcmk_output_handler $TS_OUTPUT $TS_OUTDIR/id-msg
$TS_CMD_IPCS -q -i "$(cat $TS_OUTDIR/id-msg)" |\
	grep -c "^Message Queue msqid=$(cat $TS_OUTDIR/id-msg)$" >>$TS_OUTPUT
$TS_CMD_IPCRM -q $(cat $TS_OUTDIR/id-msg) >>$TS_OUTPUT 2>&1

rm -f $TS_OUTDIR/id-msg
$TS_CMD_IPCMK -Q 2>>$TS_OUTPUT | ipcmk_output_handler $TS_OUTPUT $TS_OUTDIR/id-msg
$TS_CMD_IPCRM -Q "$(
	$TS_CMD_IPCS -q |
	awk -v id=$(cat $TS_OUTDIR/id-msg) '{if ($2 == id){print $1}}'
)" >>$TS_OUTPUT 2>&1

rm -f $TS_OUTDIR/id-msg

ts_finalize
