Скрипт позволяющий создать одним движением командной строки (:-) ) HTML страничку с содержимым этого каталога.
Был создан по заказу просьбе Balamutick -а. А так же с целью совершенствования собственных навыков. Ну и собственно выложен с комментариями и под открытой лицензией для сообщества.
Скрипт позволяющий создать одним движением командной строки (:-) ) HTML страничку с содержимым этого каталога.
Был создан по заказу просьбе Balamutick -а. А так же с целью совершенствования собственных навыков. Ну и собственно выложен с комментариями и под открытой лицензией для сообщества.
#!/usr/bin/perl -w
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Copyright (C) 2010 Igor Gritsenko <[email protected]> #
# This script may be copied and modified #
# under the terms of the GNU General Public License. #
# Version 0.0.1.5, 2010-02-24 03:42:46 #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#Подключаем библиотеку для определения типа mime файла
#File::Magic заменено на File::MMagic для поддержки старых версий *buntu
use File::MMagic;
use IO::Pipe;
##Поддержка ввода директории как аргумента и через pipe
$dir=".";
$pipe = new IO::Pipe;
if(@ARGV){$dir=shift;
}elsif($pid = fork()){$pipe->reader();
while(<$pipe>) {$dir=$_;
chomp($dir);
}
}
if(!$dir){$dir=".";
}
if($dir!~/\/$/){$dir=sprintf("$dir/");
}
opendir(DIR, $dir);
@files = readdir(DIR);
closedir(DIR);
$htmlbody='';
$imgbody='';
$sizeH="100";
$sizeW="100";
#функция для определения типа mime файла
sub mimetype{$file = shift;
$mm = new File::MMagic;
$result = $mm->checktype_filename($file);
return $result;
}
foreach $file (@files) {
if ($file!~/^\./){
if ($dir!~/\./) {$file=sprintf("$dir$file");
}
#Если наш файл - изображение, выводим его как изображение
if (mimetype($file)=~m/image/)
{ $imgbody=sprintf("$imgbody<a href=\"$file\"><img src=\"$file\"
width=\"$sizeW\" \"height=$sizeH\" border=\"2\"></a>\n") ;
}
#иначе просто делаем ссылку на него
else
{ $htmlbody=sprintf("$htmlbody<br/><a href='$file'>$file</a>\n") ;
}
}
}
my $now = localtime;
my $rlfile = "index.html";
#Открываем файл index.html и пишем в него всё, что мы нагенерировали.
open FILE, ">$rlfile" or die "unable to open $rlfile $!";
print FILE <<EOF;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Page generated by ls2html.pl</title>
<meta name="generator" content="ls2html.pl">
<meta name="author" content="Xenomorph">
<meta name="date" content=$now>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
$htmlbody
$imgbody
</body>
</html>
EOF
#Конец! :)
Скрипт в глубокой бете Version 0.0.1.0
поэтому со всеми косяками отписываемся мне, я буду править.
Комментарии (5)
Будет очень полезно :-)
Готово, шкипер!
Отправить комментарий