/*
- * Copyright (c) 2009, 2010 Zmanda, Inc. All Rights Reserved.
+ * Copyright (c) 2009-2012 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 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 program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
Return a "safe" environment hash. For non-setuid programs, this means
filtering out any localization variables.
-=item get_fs_usage(file, disk)
+=item get_fs_usage(file)
This is a wrapper around the Gnulib function of the same name. On success, it returns
a hash with keys:
my($q, $remaider) = skip_quoted_string($str)
-Return the first quoted string and the remainder of the string.
+Return the first quoted string and the remainder of the string, as separated by
+any whitespace. Note that the remainder of the string does not include the
+single separating whitespace character, but will include any subsequent
+whitespace. The C<$q> is not unquoted.
=item C<split_quoted_strings($str)>
-Split string on unquoted whitespace. Multiple consecutive spaces are not
+Split string on unquoted whitespace. Multiple consecutive spaces are I<not>
collapsed into a single space: C<"x y"> (with two spaces) parses as C<( "x",
"", "y")>. The strings are unquoted before they are returned. An empty string
-is split into C<( "" )>.
+is split into C<( "" )>. This method is generally used for parsing IPC messages,
+where blank space is significant and well-controlled.
+
+=item C<split_quoted_strings_friendly($str)>
+
+Similar to C<split_quoted_strings>, but intended for user-friendly uses. In
+particular, this function treats any sequence of zero or more whitespace
+characters as a separator, rather than the more strict interpretation applied
+by C<split_quoted_strings>. All of the strings are unquoted.
All of these quoting-related functions are available under the export
tag C<:quoting>.
"{a,b}-{1,2}" [ "a-1", "a-2", "b-1", "b-2" ]
Note that nested braces are not processed. Braces, commas, and
-backslashes may be escaped with backslashes. On error,
-C<expand_braced_altnerates> returns undef. These two functions are
+backslashes may be escaped with backslashes.
+
+As a special case for numeric ranges, if the braces contain only digits
+followed by two dots followed by more digits, and the digits sort in the
+correct order, then they will be treated as a sequence. If the first number in
+the sequence has leading zeroes, then all generated numbers will have that
+length, padded with leading zeroes.
+
+ "tape-{01..10}" [ "tape-01", "tape-02", "tape-03", "tape-04",
+ "tape-05", "tape-06", "tape-07", "tape-08",
+ "tape-09", "tape-10" ]
+
+On error, C<expand_braced_altnerates> returns undef. These two functions are
available in the export tag C<:alternates>.
=item generate_timestamp()
my $fl = Amanda::Util::file_lock->new($filename)
-then, lock the file:
+then, three ways to lock the file:
- $fl->lock();
+ $fl->lock_wr(); # take a write lock (exclusive)
+ $fl->lock_rd(); # take a read lock
+ $fl->lock(); # take a write lock and reads the contents of
+ # the file into memory.
-which also reads the contents of the file into memory, accessible via
+they return -1 on failure, 0 if the lock is taken or 1 if the lock in not
+taken (you can retry later).
+
+to access the data in memory
my $state = $fl->data();
burp $filename, $header;
These functions can (and should) be exported to the main namespace
-
+
+=head1 MATCHING
+
+The following functions are available to match strings against patterns using
+the rules described in amanda(8):
+
+ match_host($pat, $str);
+ match_disk($pat, $str);
+ match_datestamp($pat, $str);
+ match_level($pat, $str);
+
=cut
%}