#!/usr/bin/perl --
use strict;
use Getopt::Std;
use vars qw/ %opt /;
my $opt_string = 'd:c:';
getopts($opt_string, \%opt );
if(!$opt{d}) {
die "At least, asshole, give me a dir where to search for your files";
}
my ($no_columns, $no_lines);
if(!$opt{c}) {
$no_columns = 4;
} else {
$no_columns = $opt{c};
}
my $no_of_files = "ls -1 $opt{d} | grep -i .*jpg | wc -l";
$no_of_files = `$no_of_files`;
my $file_names_exec = "ls -1 $opt{d} | grep -i .*jpg";
my @file_names = split(/\n/, `$file_names_exec`);
$no_lines = ($no_of_files % $no_columns) == 0 ? "ient($no_of_files, $no_columns) : "ient($no_of_files, $no_columns) + 1;
&make_dir(&make_qualified($opt{d}, "tmb"));
&make_dir(&make_qualified($opt{d}, "big"));
my $counter = 0;
my $i = 0;
my $output_thumb;
my $output_big;
$output_thumb .= &build_html_header;
$output_big .= &build_html_header;
$output_thumb .= "
\n";
$output_big .= "\n";
while($counter < $no_of_files) {
$output_thumb .= "\n";
for($i = 0; $i < $no_columns && $counter < $no_of_files; $i++, $counter++) {
&make_thumb($opt{d}, $file_names[$counter],
&make_qualified($opt{d}, "tmb"));
$output_thumb .= &build_html_column($file_names[$counter],
"tmb/" . &get_thumb_name($file_names[$counter]));
&make_big($opt{d}, $file_names[$counter],
&make_qualified($opt{d}, "big"));
$output_big .= "
\n";
$output_big .= &build_html_column_big(
&get_big_name($file_names[$counter]));
$output_big .= "
\n";
}
$output_thumb .= "\n";
}
$output_thumb .= "
\n";
$output_thumb .= &put_copywright;
$output_thumb .= &build_html_end;
$output_big .= "
\n";
$output_big .= &put_copywright;
$output_big .= &build_html_end;
&write_to_file(&make_qualified($opt{d}, "index.html"), $output_thumb);
&write_to_file(&make_qualified($opt{d}, "big/index.html"), $output_big);
sub quotient {
my $n = shift; my $d = shift;
my $r = $n; my $q = 0;
while ($r >= $d) {
$r = $r - $d;
$q = $q + 1;
}
return $q;
}
sub make_qualified
{
my $file_dir = shift;
my $file_name = shift;
my $qualified;
if($file_dir !~ /\/$/) {
$qualified = $file_dir . "/" . $file_name;
} else {
$qualified = $file_dir . $file_name;
}
}
sub get_thumb_name
{
my $file_name = shift;
my @split_file_name = split(/\./, $file_name);
$split_file_name[0] . "_tmb.jpg";
}
sub get_big_name
{
my $file_name = shift;
my @split_file_name = split(/\./, $file_name);
$split_file_name[0] . "_big.jpg";
}
sub make_dir
{
my $dir = shift;
system("mkdir " . $dir)
unless(-d $dir);
}
sub make_thumb
{
my $source_dir = shift;
my $file_name = shift;
my $target_dir = shift;
my $convert_line = "convert -size 120x120 " .
&make_qualified($source_dir, $file_name) .
" -resize 120x120 +profile '*' " .
&make_qualified($target_dir, &get_thumb_name($file_name));
system($convert_line);
}
sub make_big
{
my $source_dir = shift;
my $file_name = shift;
my $target_dir = shift;
my $convert_line = "convert " .
&make_qualified($source_dir, $file_name) .
" -resize 600x600 +profile '*' " .
&make_qualified($target_dir, &get_big_name($file_name));
system($convert_line);
}
sub build_html_column
{
my $file_name = shift;
my $tmb_file_name = shift;
my $output;
$output = " | \n";
}
sub build_html_column_big
{
my $file_name = shift;
my $output;
$output = " | \n";
}
sub build_html_header
{
my $output;
$output .= "\n";
$output .= "\n";
}
sub build_html_end
{
my $output;
$output .= "\n";
$output .= "\n";
}
sub put_copywright
{
"";
}
sub write_to_file
{
my $html_file_name = shift;
my $output = shift;
open(OUTPUT_HTML_FILE, ">$html_file_name");
print OUTPUT_HTML_FILE $output;
close(OUTPUT_HTML_FILE);
}