#!/bin/bash

if [ "$1" = "" ] || [ ! -e $1 ]; then
  echo "This is a helper script used internally by the Asterisk to rotate logs"
  echo "and have filenames with a human readable dates (YYYY-MM-DD_messages)"
  echo "To convert an existing /var/log/asterisk/messages.<timestamp>.gz use"
  echo "asterisk-timestamp2human-log script."
  exit 1
fi

src=$1
log=$(grep astlogdir /etc/asterisk/asterisk.conf|awk -F'=>' '{print $2}'|xargs)
if [ "$log" = "" ]; then log=/var/log/asterisk; fi
dst=$log/$(awk 'NR==1{ printf "%s_messages",substr($1,2); }' $src)
for i in $(seq 0 100); do
  if [ "$i" = "0" ]; then
    suffix=""
  else
    suffix=".$i"
  fi
  if [ -e $dst$suffix ] || [ -e $dst$suffix.gz ]; then
    continue
  fi
  mv $src $dst$suffix
  gzip $dst$suffix
  exit 0
done

echo "Unable to get free suffix for Asterisk log $1!"
exit 1
