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