Initial commit
This commit is contained in:
parent
ab0efabf58
commit
8e6c508bab
|
@ -0,0 +1,211 @@
|
|||
<?php
|
||||
|
||||
function getShellString($file, $string) {
|
||||
$contents = file_get_contents($file);
|
||||
$output = array();
|
||||
|
||||
// Rather lazy, but convenient
|
||||
exec("./output_data.sh $file $string", $output);
|
||||
|
||||
if (empty($output[0])) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return $output[0];
|
||||
}
|
||||
|
||||
function printHead() {
|
||||
print "<!DOCTYPE html>\n";
|
||||
print "<head>\n";
|
||||
print "\t<meta name=\"description\" content=\"Browse speedie-aur Arch Linux packages\">\n";
|
||||
print "\t<title>speedie-aur</title>\n";
|
||||
print "\t\t<form class=\"bar\" method=\"post\" action=\"$self?action=search\"><input type=\"text\" name=\"q\" placeholder=\"search for packages..\"></form>\n";
|
||||
print "</head>\n";
|
||||
print "<body>\n";
|
||||
print "\t<div class=\"content\">\n";
|
||||
}
|
||||
|
||||
function printFoot() {
|
||||
print "\t</div>\n";
|
||||
print "</body>\n";
|
||||
print "\t<footer>\n";
|
||||
print "\t</footer>\n";
|
||||
print "</html>\n";
|
||||
}
|
||||
|
||||
function main() {
|
||||
$request = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'view';
|
||||
$query = isset($_REQUEST['q']) ? $_REQUEST['q'] : '';
|
||||
$self = $_SERVER['PHP_SELF'];
|
||||
|
||||
$packageCount = 0;
|
||||
$packageFiles = array();
|
||||
$packageNames = array();
|
||||
$packageDescs = array();
|
||||
|
||||
printHead();
|
||||
|
||||
foreach(scandir(".") as $f) {
|
||||
$path = pathinfo($f);
|
||||
if ($path['extension'] == "PKGBUILD") {
|
||||
$packageCount++;
|
||||
$packageFiles[$packageCount] = $f;
|
||||
$packageNames[$packageCount] = getShellString($f, "pkgname");
|
||||
$packageDescs[$packageCount] = getShellString($f, "pkgdesc");
|
||||
}
|
||||
}
|
||||
|
||||
// Return results
|
||||
if ($request == "search" && $query != '') {
|
||||
$validPkgs = 0;
|
||||
$matches = array();
|
||||
$matchingDescs = array();
|
||||
$matchingUrls = array();
|
||||
|
||||
for ($i = 1; $i < $packageCount+1; $i++) {
|
||||
if (preg_match("/$query/i", $packageNames[$i]) == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$matches[$validPkgs] = $packageNames[$i];
|
||||
$matchingDescs[$validPkgs] = $packageDescs[$i];
|
||||
$matchingUrls[$validPkgs] = $packageUrls[$i];
|
||||
|
||||
$validPkgs++;
|
||||
}
|
||||
|
||||
print "\t\t\t<p class=\"matches\">$validPkgs packages found matching '$query'..</p>\n";
|
||||
print "\t\t\t\t<ul class=\"pkglist\">\n";
|
||||
|
||||
for ($i = 0; $i < $validPkgs; $i++) {
|
||||
print "\t\t\t\t\t<li class=\"pkg\"><a href=\"$self?action=view&q=$matches[$i]\">$matches[$i] - $matchingDescs[$i]</li>\n";
|
||||
}
|
||||
|
||||
print "\t\t\t\t</ul>\n";
|
||||
} else if ($request == "view" && $query == '') {
|
||||
print "\t\t\t<p>Total number of packages: $packageCount</p>\n";
|
||||
print "\t\t\t\t<ul class=\"pkglist\">\n";
|
||||
|
||||
for ($i = 1; $i < $packageCount+1; ++$i) {
|
||||
print "\t\t\t\t\t<li class=\"pkg\"><a href=\"$self?action=view&q=$packageNames[$i]\">$packageNames[$i] - $packageDescs[$i]</li>\n";
|
||||
}
|
||||
|
||||
print "\t\t\t\t</ul>\n";
|
||||
} else if ($request == "view" && $query != '') {
|
||||
$packageCount = 0;
|
||||
$packageVersions = array();
|
||||
$packageUrls = array();
|
||||
$packageDepends = array();
|
||||
$packageFilenames = array();
|
||||
$packageSizes = array();
|
||||
$packageGPG = array();
|
||||
$packageMD5 = array();
|
||||
$packageSHA256 = array();
|
||||
$packageSource = array();
|
||||
|
||||
foreach(scandir(".") as $f) {
|
||||
$path = pathinfo($f);
|
||||
if ($path['extension'] == "PKGBUILD") {
|
||||
$packageCount++;
|
||||
$packageFilenames[$packageCount] = getShellString($f, "filename");
|
||||
$packageVersions[$packageCount] = getShellString($f, "pkgver");
|
||||
$packageUrls[$packageCount] = getShellString($f, "url");
|
||||
$packageDepends[$packageCount] = getShellString($f, "depends");
|
||||
$packageSizes[$packageCount] = getShellString($f, "size");
|
||||
$packageGPG[$packageCount] = getShellString($f, "gpg");
|
||||
$packageMD5[$packageCount] = getShellString($f, "md5");
|
||||
$packageSHA256[$packageCount] = getShellString($f, "sha256");
|
||||
$packageSources[$packageCount] = getShellString($f, "source");
|
||||
}
|
||||
}
|
||||
|
||||
for ($i = 1; $i < $packageCount+1; $i++) {
|
||||
if ($query != $packageNames[$i]) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$pkgName = $packageNames[$i];
|
||||
$pkgDesc = $packageDescs[$i];
|
||||
$pkgUrl = $packageUrls[$i];
|
||||
$pkgVer = $packageVersions[$i];
|
||||
$pkgSize = $packageSizes[$i];
|
||||
$pkgDeps = $packageDepends[$i];
|
||||
$pkgFilename = $packageFilenames[$i];
|
||||
$pkgFile = $packageFiles[$i];
|
||||
$pkgGPG = $packageGPG[$i];
|
||||
$pkgMD5 = $packageMD5[$i];
|
||||
$pkgSHA256 = $packageSHA256[$i];
|
||||
$pkgSource = $packageSources[$i];
|
||||
|
||||
print "\t\t<h1>$pkgName</h1>\n";
|
||||
|
||||
print "\t\t\t<table>\n";
|
||||
print "\t\t\t\t<tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>Description</th>\n";
|
||||
print "\t\t\t\t\t\t<td>$pkgDesc</td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>Version</th>\n";
|
||||
print "\t\t\t\t\t\t<td>$pkgVer</td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>URL</th>\n";
|
||||
print "\t\t\t\t\t\t<td>$pkgUrl</td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>Dependencies</th>\n";
|
||||
print "\t\t\t\t\t\t<td>$pkgDeps</td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>Size</th>\n";
|
||||
print "\t\t\t\t\t\t<td>$pkgSize</td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>Installation</th>\n";
|
||||
print "\t\t\t\t\t\t<td><code>pacman -S $pkgName</code></td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>Filename</th>\n";
|
||||
print "\t\t\t\t\t\t<td>$pkgFilename</td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>GPG</th>\n";
|
||||
print "\t\t\t\t\t\t<td>$pkgGPG</td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>MD5</th>\n";
|
||||
print "\t\t\t\t\t\t<td>$pkgMD5</td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>SHA256</th>\n";
|
||||
print "\t\t\t\t\t\t<td>$pkgSHA256</td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th>Source</th>\n";
|
||||
print "\t\t\t\t\t\t<td>$pkgSource</td>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t\t\t<tr>\n";
|
||||
print "\t\t\t\t\t<th><a href=\"$pkgFile\">PKGBUILD</th>\n";
|
||||
print "\t\t\t\t</tr>\n";
|
||||
|
||||
print "\t\t\t</table>\n";
|
||||
}
|
||||
}
|
||||
|
||||
printFoot();
|
||||
}
|
||||
|
||||
main();
|
67
packages/output_data.sh
Executable file
67
packages/output_data.sh
Executable file
|
@ -0,0 +1,67 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
source "$1"
|
||||
|
||||
if [ -n "${arch[0]}" ] && [ "${arch[0]}" = "x86_64" ]; then
|
||||
arch="x86_64"
|
||||
elif [ -n "${arch[1]}" ] && [ "${arch[1]}" = "x86_64" ]; then
|
||||
arch="x86_64"
|
||||
elif [ -n "${arch[0]}" ] && [ -n "${arch[1]}" ]; then
|
||||
arch="any"
|
||||
fi
|
||||
|
||||
case "$2" in
|
||||
"pkgname")
|
||||
printf "%s" "${pkgname:-No name specified.}"
|
||||
exit
|
||||
;;
|
||||
"pkgdesc")
|
||||
printf "%s" "${pkgdesc:-No description specified.}"
|
||||
exit
|
||||
;;
|
||||
"pkgver")
|
||||
printf "%s" "${pkgver:-No version specified.}"
|
||||
exit
|
||||
;;
|
||||
"url")
|
||||
printf "%s" "${url:-No URL specified.}"
|
||||
exit
|
||||
;;
|
||||
"depends")
|
||||
printf "%s" "${depends[*]}"
|
||||
exit
|
||||
;;
|
||||
"filename")
|
||||
package="$pkgname-${pkgver:-0.1}-${pkgrel:-1}-${arch:-x86_64}.pkg.tar.zst"
|
||||
[ -f "$package" ] && printf "%s" "$package" || printf "Unknown"
|
||||
exit
|
||||
;;
|
||||
"source")
|
||||
printf "${source[*]}"
|
||||
exit
|
||||
;;
|
||||
"sha256")
|
||||
printf "${sha256sums[*]}"
|
||||
exit
|
||||
;;
|
||||
"md5")
|
||||
printf "${md5sums[*]}"
|
||||
exit
|
||||
;;
|
||||
"gpg")
|
||||
package="$pkgname-${pkgver:-0.1}-${pkgrel:-1}-${arch:-x86_64}.pkg.tar.zst"
|
||||
[ -f "$package.sig" ] && printf "%s" "$package.sig" || printf "Unknown"
|
||||
exit
|
||||
;;
|
||||
"size")
|
||||
package="$pkgname-$pkgver-$pkgrel-$arch.pkg.tar.zst"
|
||||
|
||||
if [ -f "$package" ]; then
|
||||
du -sh "$package" | awk '{ print $1 }'
|
||||
else
|
||||
printf "0B"
|
||||
fi
|
||||
|
||||
exit
|
||||
;;
|
||||
esac
|
Loading…
Reference in a new issue