talimatname-indeksleme
This commit is contained in:
parent
f1f81cf5e1
commit
f90832b900
|
@ -0,0 +1,67 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ -z $1 ];then
|
||||||
|
echo "kullanım: $0 > index.html"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
paketdepo="http://paketler.milislinux.org"
|
||||||
|
dosya=/tmp/paket_konumlar
|
||||||
|
[ -f $dosya ] && rm -rf $dosya
|
||||||
|
find /root/talimatname/temel/* -type d > $dosya
|
||||||
|
find /root/talimatname/genel/*/* -type d >> $dosya
|
||||||
|
|
||||||
|
echo "<html>"
|
||||||
|
echo '<meta http-equiv="content-type" contentType="text/html; charset=UTF-8">'
|
||||||
|
echo '<meta charset="UTF-8">'
|
||||||
|
echo '<link rel="stylesheet" href="bootstrap.min.css" />'
|
||||||
|
echo '<table class="table" border=1>'
|
||||||
|
echo '<thead class="thead-dark">'
|
||||||
|
echo '<tr>'
|
||||||
|
echo '<th scope="col">Grup</th>'
|
||||||
|
echo '<th scope="col">isim</th>'
|
||||||
|
echo '<th scope="col">Sürüm</th>'
|
||||||
|
echo '<th scope="col">Açıklama</th>'
|
||||||
|
echo '<th scope="col">Url</th>'
|
||||||
|
echo '<th scope="col">Paket Adresi</th>'
|
||||||
|
echo '</tr>'
|
||||||
|
echo '</thead>'
|
||||||
|
|
||||||
|
echo '<tbody>'
|
||||||
|
|
||||||
|
while IFS='' read -r konum || [[ -n "$konum" ]]; do
|
||||||
|
|
||||||
|
echo "<tr>"
|
||||||
|
|
||||||
|
# Grup
|
||||||
|
grup=$(grep -ri "# Grup:" $konum/talimat | cut -d ':' -f2-)
|
||||||
|
echo "<td>$grup</td>"
|
||||||
|
|
||||||
|
# İsim
|
||||||
|
isim=$(basename $konum)
|
||||||
|
echo "<td>$isim</td>"
|
||||||
|
|
||||||
|
# Surum-Devir
|
||||||
|
surum=$(grep -ri ^"surum=" $konum/talimat | cut -d '=' -f2-)
|
||||||
|
devir=$(grep -ri ^"devir=" $konum/talimat | cut -d '=' -f2-)
|
||||||
|
echo "<td>$surum-$devir</td>"
|
||||||
|
|
||||||
|
# Tanım
|
||||||
|
tanim=$(grep -ri "# Tanım:" $konum/talimat | cut -d ':' -f2-)
|
||||||
|
echo "<td>$tanim</td>"
|
||||||
|
|
||||||
|
# Url
|
||||||
|
url=$(grep -ri "# Url:" $konum/talimat | cut -d ':' -f2-)
|
||||||
|
echo "<td><a href=$url>$url</a></td>"
|
||||||
|
|
||||||
|
# İndir
|
||||||
|
echo "<td><a href=${paketdepo}/${isim}%23${surum}-x86_64.mps.lz>indir</a></td>"
|
||||||
|
# %23 = #
|
||||||
|
|
||||||
|
echo "</tr>"
|
||||||
|
done < "$dosya"
|
||||||
|
|
||||||
|
echo '</tbody>'
|
||||||
|
echo "</table>"
|
||||||
|
echo "</htlm>"
|
||||||
|
|
|
@ -1,313 +0,0 @@
|
||||||
#!/usr/bin/perl -w
|
|
||||||
|
|
||||||
our $version = "1.0.4";
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
#
|
|
||||||
# portspage (http://www.karsikkopuu.net/crux/scripts/)
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# 2017 milis linux talimatnamesine uyarlama - milisarge
|
|
||||||
########################################################################
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
our %options =
|
|
||||||
(
|
|
||||||
title => "Milis Linux Talimatnamesi",
|
|
||||||
timestamp_accuracy => 1,
|
|
||||||
date_from_file => 0,
|
|
||||||
);
|
|
||||||
|
|
||||||
sub print_usage
|
|
||||||
{
|
|
||||||
print <<EOT;
|
|
||||||
Usage: talimatname_indeks_yap [paremetre]... [dizin]
|
|
||||||
|
|
||||||
--title=TITLE set the page title
|
|
||||||
--header=FILE name of file to insert before port listing
|
|
||||||
--footer=FILE name of file to insert after port listing
|
|
||||||
--timestamp-accuracy=LEVEL 0 = no timestamp, 1 = date only, 2 = date and time
|
|
||||||
default is 1
|
|
||||||
--date-from-file take date from newest file instead of directory
|
|
||||||
--date-from-pkgfile take date from Pkgfile instead of directory
|
|
||||||
--version output version information and exit
|
|
||||||
|
|
||||||
EOT
|
|
||||||
}
|
|
||||||
|
|
||||||
sub parse_args
|
|
||||||
{
|
|
||||||
foreach my $arg (@ARGV)
|
|
||||||
{
|
|
||||||
if ($arg =~ /^--header=(.*)$/)
|
|
||||||
{
|
|
||||||
$options{header} = $1;
|
|
||||||
}
|
|
||||||
elsif ($arg =~ /^--footer=(.*)$/)
|
|
||||||
{
|
|
||||||
$options{footer} = $1;
|
|
||||||
}
|
|
||||||
elsif ($arg =~ /^--title=(.*)$/)
|
|
||||||
{
|
|
||||||
$options{title} = $1;
|
|
||||||
}
|
|
||||||
elsif ($arg =~ /^--timestamp-accuracy=(0|1|2)$/)
|
|
||||||
{
|
|
||||||
$options{timestamp_accuracy} = $1;
|
|
||||||
}
|
|
||||||
elsif ($arg =~ /^--date-from-file$/)
|
|
||||||
{
|
|
||||||
$options{date_from_file} = 1;
|
|
||||||
}
|
|
||||||
elsif ($arg =~ /^--date-from-pkgfile$/)
|
|
||||||
{
|
|
||||||
$options{date_from_pkgfile} = 1;
|
|
||||||
}
|
|
||||||
elsif ($arg =~ /^--version$/)
|
|
||||||
{
|
|
||||||
print "$version\n";
|
|
||||||
exit 0;
|
|
||||||
}
|
|
||||||
elsif ($arg =~ /^--help$/)
|
|
||||||
{
|
|
||||||
print_usage();
|
|
||||||
exit 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$options{directory} = $arg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub recurse_tree
|
|
||||||
{
|
|
||||||
my $path = shift;
|
|
||||||
my @list;
|
|
||||||
|
|
||||||
while ($path =~ s/\/\//\//g) {}
|
|
||||||
$path =~ s/\/$//;
|
|
||||||
|
|
||||||
opendir(DIR, $path) or return;
|
|
||||||
ENTRY:
|
|
||||||
foreach my $entry(sort(readdir(DIR)))
|
|
||||||
{
|
|
||||||
next ENTRY if $entry eq ".";
|
|
||||||
next ENTRY if $entry eq "..";
|
|
||||||
push (@list, "$path/$entry") if -f "$path/$entry";
|
|
||||||
push (@list, recurse_tree("$path/$entry")) if -d "$path/$entry";
|
|
||||||
}
|
|
||||||
|
|
||||||
return @list;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub parse_pkgfile
|
|
||||||
{
|
|
||||||
my %parsed;
|
|
||||||
my $pkgfile = shift;
|
|
||||||
|
|
||||||
if (open (FILE, $pkgfile))
|
|
||||||
{
|
|
||||||
while (<FILE>)
|
|
||||||
{
|
|
||||||
if ($_ =~ /^#\s*(.*?):\s*(.*)$/)
|
|
||||||
{
|
|
||||||
my $key = $1;
|
|
||||||
my $value = $2;
|
|
||||||
$value =~ s/</</g;
|
|
||||||
$value =~ s/>/>/g;
|
|
||||||
$value =~ s/&/&/g;
|
|
||||||
$parsed{$key} = $value;
|
|
||||||
}
|
|
||||||
elsif ($_ =~ /^version=(.*)$/)
|
|
||||||
{
|
|
||||||
$parsed{version} = $1;
|
|
||||||
}
|
|
||||||
elsif ($_ =~ /^release=(.*)$/)
|
|
||||||
{
|
|
||||||
$parsed{release} = $1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close (FILE);
|
|
||||||
}
|
|
||||||
|
|
||||||
return { %parsed };
|
|
||||||
}
|
|
||||||
|
|
||||||
sub main
|
|
||||||
{
|
|
||||||
my %db;
|
|
||||||
|
|
||||||
parse_args();
|
|
||||||
|
|
||||||
if (!$options{directory})
|
|
||||||
{
|
|
||||||
print_usage();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach my $file (recurse_tree($options{directory}))
|
|
||||||
{
|
|
||||||
if ($file =~ q:.*/(.*)/talimat$:)
|
|
||||||
{
|
|
||||||
$db{$1} = parse_pkgfile("$file");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print <<EOH;
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
||||||
|
|
||||||
<html xml:lang="tr" lang="tr" xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" contentType="text/html;">
|
|
||||||
|
|
||||||
EOH
|
|
||||||
|
|
||||||
print " <title>$options{title}</title>\n";
|
|
||||||
|
|
||||||
print <<EOH;
|
|
||||||
<style type="text/css">
|
|
||||||
body
|
|
||||||
{
|
|
||||||
font-family: Verdana, sans-serif;
|
|
||||||
font-size: 85%;
|
|
||||||
padding: 2em;
|
|
||||||
}
|
|
||||||
a
|
|
||||||
{
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
table
|
|
||||||
{
|
|
||||||
border: solid #CAD4E9 1px;
|
|
||||||
font-size: 85%;
|
|
||||||
}
|
|
||||||
td
|
|
||||||
{
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
tr.header
|
|
||||||
{
|
|
||||||
background-color: #CAD4E9;
|
|
||||||
}
|
|
||||||
tr.odd
|
|
||||||
{
|
|
||||||
background-color: #ECF0F7;
|
|
||||||
}
|
|
||||||
tr.even
|
|
||||||
{
|
|
||||||
background-color: #F7F9FC;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
EOH
|
|
||||||
|
|
||||||
print " <h2>$options{title}</h2>\n";
|
|
||||||
|
|
||||||
if ($options{header})
|
|
||||||
{
|
|
||||||
open(FILE, $options{header}) or die "Couldn't open header file";
|
|
||||||
while (<FILE>)
|
|
||||||
{
|
|
||||||
print " " . $_;
|
|
||||||
}
|
|
||||||
close(FILE);
|
|
||||||
}
|
|
||||||
|
|
||||||
print " <table width=\"100%\" cellspacing=\"0\">\n";
|
|
||||||
print " <tr class=\"header\"><td><b>Talimat</b></td><td><b>Sürüm</b></td><td><b>Açıklama</b></td>";
|
|
||||||
if ($options{timestamp_accuracy} > 0)
|
|
||||||
{
|
|
||||||
print "<td><b>Son değişiklik</b></td>";
|
|
||||||
}
|
|
||||||
print "</tr>\n";
|
|
||||||
our $odd = "odd";
|
|
||||||
my $count = 0;
|
|
||||||
foreach my $port (sort keys %db)
|
|
||||||
{
|
|
||||||
$count++;
|
|
||||||
print " <tr class=\"$odd\"><td>";
|
|
||||||
$db{$port}{URL} ? print "<a href=\"$db{$port}{URL}\">$port</a>" : print "$port";
|
|
||||||
print "</td><td><a href=\"$options{directory}/$port/\">$db{$port}{version}-$db{$port}{release}</a></td><td>";
|
|
||||||
print $db{$port}{Description} if $db{$port}{Description};
|
|
||||||
print "</td>";
|
|
||||||
|
|
||||||
if ($options{timestamp_accuracy} > 0)
|
|
||||||
{
|
|
||||||
my $date;
|
|
||||||
|
|
||||||
if ($options{date_from_file})
|
|
||||||
{
|
|
||||||
my @files = recurse_tree("$options{directory}/$port");
|
|
||||||
my @dates;
|
|
||||||
foreach my $file (@files)
|
|
||||||
{
|
|
||||||
push (@dates, (stat($file))[9]);
|
|
||||||
}
|
|
||||||
@dates = sort @dates;
|
|
||||||
$date = $dates[$#dates];
|
|
||||||
|
|
||||||
}
|
|
||||||
elsif ($options{date_from_pkgfile})
|
|
||||||
{
|
|
||||||
$date = (stat("$options{directory}/$port/talimat"))[9];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$date = (stat("$options{directory}/$port"))[9];
|
|
||||||
}
|
|
||||||
|
|
||||||
print "<td>" . isotime($date, $options{timestamp_accuracy}) . "</td>";
|
|
||||||
}
|
|
||||||
|
|
||||||
print "</tr>\n";
|
|
||||||
|
|
||||||
if ($odd eq "odd") { $odd = "even"; }
|
|
||||||
else { $odd = "odd"; }
|
|
||||||
}
|
|
||||||
print " </table>\n";
|
|
||||||
print " <p><b>$count talimat</b></p>\n";
|
|
||||||
|
|
||||||
if ($options{footer})
|
|
||||||
{
|
|
||||||
open(FILE, $options{footer}) or die "Couldn't open footer file";
|
|
||||||
while (<FILE>)
|
|
||||||
{
|
|
||||||
print " " . $_;
|
|
||||||
}
|
|
||||||
close(FILE);
|
|
||||||
}
|
|
||||||
|
|
||||||
print <<EOH;
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
EOH
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub isotime
|
|
||||||
{
|
|
||||||
my $time = (shift or time);
|
|
||||||
my $accuracy = (shift or 2);
|
|
||||||
my @t = gmtime ($time);
|
|
||||||
my $year = $t[5] + 1900;
|
|
||||||
my $month = sprintf("%02d", $t[4] + 1);
|
|
||||||
my $day = sprintf("%02d", $t[3]);
|
|
||||||
|
|
||||||
if ($accuracy == 1)
|
|
||||||
{
|
|
||||||
return "$year-$month-$day";
|
|
||||||
}
|
|
||||||
|
|
||||||
return "$year-$month-$day " . sprintf("%02d:%02d:%02d UTC", $t[2], $t[1], $t[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
exit(main());
|
|
||||||
|
|
||||||
# End of file
|
|
Loading…
Reference in New Issue