/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";