#!/usr/bin/perl
##
## annunci-elimina.pl
##
#
# Utilizza il modulo Pg, per l'utilizzo delle librerie LibPQ di
# PostgreSQL.
#
use Pg;
#
# Inizio del programma.
#
if ($#ARGV >= 0)
{
    $giorni = $ARGV[0];
  }
else
  {
    $giorni = 7;
  }
$adesso = time();
$data_minima = $adesso - ($giorni * 24 * 60 * 60);
#
# Apre la connessione con il servente PostgreSQL locale, utilizzando
# la base di dati «pubblico».
#
$PGconnessione = Pg::connectdb ("dbname = pubblico");
#
# Verifica che la connessione sia avvenuta.
#
if ($PGconnessione->status == PGRES_CONNECTION_OK)
  {
    #
    # La connessione è avvenuta e si procede con l'eliminazione
    # degli annunci vecchi.
    #
    $PGistruzione = "
        DELETE FROM Annunci WHERE Data < $data_minima ";
    #
    $PGrisultato = $PGconnessione->exec ("$PGistruzione");
    #
    # Verifica il risultato dell'esecuzione dell'istruzione.
    # Attualmente sembra che il valore dello stato restituito
    # sia invertito.
    #
    $PGstatus = $PGconnessione->status;
    #
    if ($PGstatus == PGRES_COMMAND_BAD)
      {
        print STDOUT ("$PGerrore\n");
      }
  }
else
  {
    #
    # Per qualche motivo la connessione con la base di dati non
    # funziona e si avvisa l'utente di conseguenza.
    #
    print STDOUT ("La base di dati ``pubblico'' è inaccessibile.\n");
  }
#
1;
#
