/* * Copyright (c) 2009 Zmanda, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published * by the Free Software Foundation. * * This program 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. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Contact information: Zmanda Inc., 465 S. Mathilda Ave., Suite 300 * Sunnyvale, CA 94085, USA, or: http://www.zmanda.com */ %perlcode %{ =head1 NAME Amanda::Tapelist - manipulate the Amanda tapelist =head1 SYNOPSIS use Amanda::Tapelist; my $tl = Amanda::Tapelist::read_tapelist("/path/to/tapefile"); $tl->add_tapelabel($datestamp, $label); $tl->add_tapelabel($datestamp2, $label2, $comment); $tl->write("/path/to/tapefile"); =head1 OBJECT-ORIENTED INTERFACE The package-level functions C and C both return a new tapelist object. C returns C if the tapelist does not exist. Invalid entries are silently ignored. A tapelist object is a sequence of tapelist elements (referred to as TLEs in this document), sorted by datestamp from newest to oldest. Each TLE is a hash with the following keys: =over =item C the one-based position of the TLE in the tapelist =item C the datestamp on which this was written, or "0" for an unused tape =item C true if this tape can be reused when it is no longer active =item C