#!/usr/bin/perl
use strict;
use warnings;
# 0a) Initialize variables
my $grpNm = "";
my $memID = "";
my @groupInfo = ("", "");
my @memberInfo = ("", "");
my @ldapMemInfo = ("", "");
my @idInfo = ("", "");
my @csvContent = ("", "");
my $allGroupResult = "allTmp.txt";
my $allGroupDataFinal = "allData.csv";
open my $fhGroupFile, '<', "$allGroupResult" or die "Could not create or open $allGroupResult";
open my $fhCSVOutput, '>', "$allGroupDataFinal" or die "Could not create or open $allGroupDataFinal";
sub lTrim
{
my $s=shift;
$s =~ s/^\s+//;
return $s;
}
sub rTrim
{
my $s=shift;
$s =~ s/\s+$//;
return $s;
}
sub trimAll
{
my $s=shift;
$s =~ s/^\s+|\s+$//g;
return $s;
}
# ------------ Main Program --------------------
while (<$fhGroupFile>)
{
my $line = $_;
chomp $line;
# Check if line begins with "cn" or "member"
if ($line =~ m/^cn/) # found group name
{
@groupInfo = split /:/, $line;
$grpNm = $groupInfo[1]; # second entry is group name
$grpNm = lTrim($grpNm); #trim leading spaces from group name
# print "array indice $groupInfo[1]\n";
print "scalar grpNm:$grpNm\n";
$csvContent[0] = $grpNm;
} elsif ($line =~ m/^member/) # found member name
{
@memberInfo = split /:/, $line;
@ldapMemInfo = split /,/, $memberInfo[1]; # second entry is full string for ldap content
@idInfo = split /=/, $ldapMemInfo[0]; # second entry is ldap content
#print "array idInfo /= @idInfo\n\n";
$memID = $idInfo[1]; # second entry is the specific ID
#print "scalar memID = $memID\n";
$csvContent[1] = $memID;
print $fhCSVOutput "$csvContent[0]";
print $fhCSVOutput ",";
#print $fhCSVOutput "$csvContent[1]";
print $fhCSVOutput "\n";
} else {
}
} # while <$fhGroupFile>
close($fhGroupFile);
close($fhCSVOutput);
####
print $fhCSVOutput "$csvContent[0]";
print $fhCSVOutput ",";
#print $fhCSVOutput "$csvContent[1]";
print $fhCSVOutput "\n";
####
print $fhCSVOutput "$grpNm";
print $fhCSVOutput ",";
#print $fhCSVOutput "$memID";
print $fhCSVOutput "\n";