#!/bin/bash
#
# archive-lib
#
# Requires: procmail (formail)

# Import configuration

. archive.conf

# Canonicalize directories

accepted_dir=$queue_dir/accepted
rejected_dir=$queue_dir/rejected
unchecked_dir=$queue_dir/unchecked
byhand_dir=$queue_dir/byhand

######
# file input functions

fetch_field ()
{
  local field=$1

  formail -x$field:
}

fetch_files ()
{
  formail -xFiles: | cut -d' ' -f6
}

fetch_md5sums ()
{
  formail -xFiles: | cut -d' ' -f2,6 | sed -e 's/ /  /'
}

secure_files ()
{
  local changes=$1
  local files=`fetch_files < $changes`

  for file in $files; do
    echo $(basename `readlink -f $file`)
  done
}

# .changes managment functions

strip_changes ()
{
  awk  '
BEGIN { block = 0; contents = 0 }
/^-----BEGIN PGP SIGNATURE/ { exit }
block && contents { print }
/^-----BEGIN PGP SIGNED/ { block = 1 }
block && /^ *$/ { contents = 1 }
'
}

files_owner_perms ()
{
  local files=$@

  chown $archive_owner:$archive_group $files
  chmod $archive_perms $files
}

log_install ()
{
  echo "$@" | tee -a $log_dir/install-`date -I`.log
}

log_queue ()
{
  echo "$@" | tee -a $log_dir/queue-`date -I`.log
}

msg_mail ()
{
  local subject=$1
  local recipient=$2

  (
    cat
    echo "$subject"
    echo
  ) | tee -a $log_dir/queue-`date -I`.log

  if [ "$MAIL_REPORT" = "yes" ]; then
    (
      cat
      echo
      echo "-- "
      echo "Archive Maintainer ($archive_maint)"
    ) | mail -s "$subject" "$recipient"
  fi
}

