#!/usr/bin/perl
use strict;
use warnings;
use perunServicesInit;
use perunServicesUtils;
use File::Basename;

our $SERVICE_NAME = basename($0);
our $PROTOCOL_VERSION = "3.1.0";
my $SCRIPT_VERSION = "3.0.2";

perunServicesInit::init;
my $DIRECTORY = perunServicesInit::getDirectory;
my $data = perunServicesInit::getHashedHierarchicalData;

my $sshkeysDirectory = "$DIRECTORY/sshkeys";
mkdir $sshkeysDirectory or die "Can't mkdir $sshkeysDirectory: $!";

#Constants
our $A_SSHKEYS;                      *A_SSHKEYS =                     \'urn:perun:user:attribute-def:def:sshPublicKey';
our $A_USER_FACILITY_LOGIN;          *A_USER_FACILITY_LOGIN =         \'urn:perun:user_facility:attribute-def:virt:login';

my %sshKeys;

foreach my $memberId ($data->getMemberIdsForFacility()) {
	my $login = $data->getUserFacilityAttributeValue( member => $memberId, attrName => $A_USER_FACILITY_LOGIN);
	my $sshkeys = $data->getUserAttributeValue( member => $memberId, attrName => $A_SSHKEYS );
	$sshKeys{$login} = $sshkeys;
}

####### output ######################
for my $login (keys %sshKeys) {
	open SERVICE_FILE,">$sshkeysDirectory/$login" or die "Cannot open $sshkeysDirectory/$login: $! \n";
	print SERVICE_FILE join "\n", @{$sshKeys{$login}}, "\n" if defined $sshKeys{$login};
	close SERVICE_FILE;
}
#####################################################
perunServicesInit::finalize;
