#!/usr/bin/perl -w

use File::Basename;
use POSIX qw(strftime);
use strict;

my @filenames = (   'FHEM/73_AutoShuttersControl.pm',
                    'lib/FHEM/Automation/ShuttersControl.pm',
                    'lib/FHEM/Automation/ShuttersControl/Dev.pm',
                    'lib/FHEM/Automation/ShuttersControl/Roommate.pm',
                    'lib/FHEM/Automation/ShuttersControl/Shutters.pm',
		    'lib/FHEM/Automation/ShuttersControl/Shading.pm',
		    'lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm',
                    'lib/FHEM/Automation/ShuttersControl/Helper.pm',
                    'lib/FHEM/Automation/ShuttersControl/Window.pm',
                    'lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm',
                    'lib/FHEM/Automation/ShuttersControl/Dev/Readings.pm',
                    'lib/FHEM/Automation/ShuttersControl/Shutters/Attr.pm',
                    'lib/FHEM/Automation/ShuttersControl/Shutters/Readings.pm',
                    'lib/FHEM/Automation/ShuttersControl/Window/Attr.pm',
                    'lib/FHEM/Automation/ShuttersControl/Window/Readings.pm',
		    'lib/FHEM/Automation/ShuttersControl/Rainprotection.pm'
    );

my $controlsfile    = 'controls_AutoShuttersControl.txt';

open(FH, ">$controlsfile") || return("Can't open $controlsfile: $!");

for my  $filename (@filenames) {
    my @statOutput = stat($filename);
  
    if (scalar @statOutput != 13) {
        printf 'error: stat has unexpected return value for ' . $filename . "\n";
        next;
    }

    my $mtime = $statOutput[9];
    my $date = POSIX::strftime("%Y-%m-%d", localtime($mtime));
    my $time = POSIX::strftime("%H:%M:%S", localtime($mtime));
    my $filetime = $date."_".$time;

    my $filesize = $statOutput[7];

    printf FH 'UPD ' . $filetime . ' ' . $filesize . ' ' .$filename . "\n";
}

close(FH);

system("git add $controlsfile");

print 'Create controls File succesfully' . "\n";

exit 0;