#!/usr/bin/perl

use strict;
use warnings;

sub pisz_plik { 
	my ($plik,$size,$endcol)= @_;
# Najpierw zabezpieczam wstępnie bakslasz
	$plik =~ s/\\/\\\\/g;
# Teraz ${}&%#_ 
	$plik =~ s/([\${}&%#_])/\\$1/g;
# ~ i ^ są bardziej skomplikowane
	$plik =~ s/\^/\$\\hat{\\ }\$/;
	$plik =~ s/~/\$\\tilde{\\ }\$/;
	$plik =~ s/\[/{[}/g;
# Teraz ostatecznie zabezpieczam bakslasz
	$plik =~ s/\\\\/\$\\backslash\$/g;  
	print "$plik";
        print "\&";
        if (!defined($size)) {
		print "brak";
        } else {
            print "$size";
        }
	if($endcol) { 
		print "\\\\\n";
	} else { 
		print "\&";
	} 
}

sub pisz_dir {
	my ($my_dir) = @_;
	my $kcnt = 0;
#	print "Robię ->$my_dir\n";
	opendir(DIR, $my_dir);
        my @pliki = readdir(DIR);
	closedir(DIR);
	
	for my $plik (@pliki) {
#	    print "Robię plik -> $plik\n";
	    my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,
		$mtime,$ctime,$blksize,$blocks) = stat("$my_dir/$plik");
#	    if ($plik =~ /^[a-zA-Z0-9]*$/) { 
	    	$kcnt++;
	    	pisz_plik($plik,$size, !($kcnt%3));
#	    }
	}
	    $kcnt = $kcnt % 3;
#
#	if($kcnt) { $kcnt = 3-$kcnt;}
#	    while($kcnt>0) { 
#		$kcnt--;
#		pisz_plik("\\ ","\\ ", !$kcnt);
#	    }
		
	
}
sub pisz_preamble { 
print <<'EOP' ;
% Standardowy nagłówek
\documentclass[a4paper,twoside]{article}
% Cztery następne linie włączają obsługę polskich liter
\usepackage[T1]{fontenc}
\usepackage[polish]{babel}
\fontencoding{T1}
\usepackage[latin2]{inputenc}
% Następna linia włącza alternatywny sposób wydruku polskich liter
% minimalne pogarsza wydruk, dramatycznie polepsza PDF
\usepackage{ae}
% Dwie następne linie dodają udogodnienia do tabelek
\usepackage{dcolumn}
\usepackage{longtable}
\usepackage{multicol}
\setlength{\oddsidemargin}{0.1in}
\setlength{\evensidemargin}{\oddsidemargin}
\begin{document}
EOP
}

pisz_preamble;
print <<'EOP' ;
%\begin{multicols}{3}
\begin{longtable}{|lr|lr|lr|}
\hline
Plik&rozmiar&Plik&rozmiar&Plik&rozmiar\\
\hline
\endhead
\hline
\endfoot
EOP

pisz_dir("/usr/bin");
#pisz_dir(".");

print <<'EOP' ;
\hline
\end{longtable}
%\end{multicols}
EOP

print <<'EOP' ;
\end{document}
EOP
