/ag-export
#!/usr/bin/perl
use strict;
use AwesomeGrid;
use AwesomeGrid::Config;
use AwesomeGrid::User;
use AwesomeGrid::Keyring;
my @peers = AwesomeGrid::Config::trusted();
my $admins = AwesomeGrid::Config::admins();
my $home = AwesomeGrid::Config::hostname()
|| die "invalid hostname";
my @exports = AwesomeGrid::Config::exports();
foreach my $u (@exports) {
my $agu = AwesomeGrid::User->load($u);
if ($agu->{home} ne $home) {
print STDERR "WARNING: Exporting $u for non-home system $agu->{home}\n";
}
}
END {system('stty echo')}
system('stty -echo');
print STDERR "GPG Passphrase: ";
my $passphrase = <STDIN>;
system('stty echo');
print "\n";
my $pwd = `pwd`; chomp $pwd;
chdir "$AwesomeGrid::confdir/users";
my $exports = join(' ', @exports);
system(qq!tar cfz "$pwd/export.tgz" $exports!);
foreach my $peer (@peers) {
my $admin_id = $admins->{$peer};
print "Exporting for $peer ($admin_id)\n";
AwesomeGrid::Keyring::encrypt($admin_id,"$pwd/export.tgz","$pwd/$home-export-$peer.tgz.gpg",$passphrase);
}
unlink "$pwd/export.tgz";