blob: 187700f30d911dee95009a7d2515ef3aca61e176 (
plain)
- #!/usr/bin/perl
- package IkiWiki::Plugin::amazon_s3;
- use warnings;
- no warnings 'redefine';
- use strict;
- use IkiWiki 2.00;
- use IkiWiki::Render;
- use Net::Amazon::S3;
- # Store references to real subs before overriding them.
- our %subs;
- BEGIN {
- foreach my $sub (qw{IkiWiki::writefile IkiWiki::prune}) {
- $subs{$sub}=\&$sub;
- }
- };
- sub import { #{{{
- hook(type => "getopt", id => "amazon_s3", call => \&getopt);
- hook(type => "checkconfig", id => "amazon_s3", call => \&checkconfig);
- } # }}}
- sub getopt () { #{{{
- eval q{use Getopt::Long};
- error($@) if $@;
- Getopt::Long::Configure('pass_through');
- GetOptions("delete-bucket" => sub {
- my $bucket=getbucket();
- debug(gettext("deleting bucket.."));
- my $resp = $bucket->list_all or die $bucket->err . ": " . $bucket->errstr;
- foreach my $key (@{$resp->{keys}}) {
- debug("\t".$key->{key});
- $bucket->delete_key($key->{key}) or die $bucket->err . ": " . $bucket->errstr;
- }
- $bucket->delete_bucket or die $bucket->err . ": " . $bucket->errstr;
- debug(gettext("done"));
- exit(0);
- });
- } #}}}
- sub checkconfig { #{{{
- foreach my $field (qw{amazon_s3_key_id amazon_s3_key_file
- amazon_s3_bucket}) {
- if (! exists $config{$field} || ! defined $config{$field}) {
- error(sprintf(gettext("Must specify %s"), $field));
- }
- }
- if (! exists $config{amazon_s3_prefix} ||
- ! defined $config{amazon_s3_prefix}) {
- $config{amazon_s3_prefix}="wiki/";
- }
- } #}}}
- {
- my $bucket;
|