#!/usr/bin/perl
#+JMJ
# wfilej - Generate web server file list in JSON format
# 2014 David Meyer <
[email protected]>
use JSON;
$ROOTURL = '
http://totallynuclear.club';
$ROOTPATH = '/var/www/html';
$USERPATH = '/home/*/public_html';
$UPATHRE = '/home/(\w+)/public_html';
#print "{\"filelist\": [\n";
@filelist = ();
open WFILE, "/bin/find $ROOTPATH $USERPATH -name '*.html' -o -name '*.txt' 2>/dev/null |";
while (<WFILE>) {
$urlpath = $user = $basefile = $url = "";
chop $_;
if ($_ =~ m:^$ROOTPATH(.*)/([^/]+)$:) {
$urlpath = $1;
$basefile = $2;
$user = 'null';
$url = $ROOTURL . $urlpath . '/' . $basefile;
}
else {
$_ =~ m:^$UPATHRE(.*)/([^/]+)$:;
$user = "\"$1\"";
$urlpath = $2;
$basefile = $3;
$url = $ROOTURL . "/~$1" . $urlpath . '/' . $basefile;
}
# print "\t{\n";
# print "\t\t\"file\": \"$_\",\n";
# print "\t\t\"user\": $user,\n";
# print "\t\t\"urlpath\": " . ($urlpath ? "\"$urlpath\"" : "null") . ",\n";
# print "\t\t\"basefile\": \"$basefile\",\n";
# print "\t\t\"url\": \"$url\"\n";
# print "\t},\n";
%fileobj = (
file => $_,
user => $user,
urlpath => $urlpath,
basefile => $basefile,
url => $url
);
push @filelist, \%fileobj;
# (
# file => $_,
# user => $user,
# urlpath => $urlpath,
# basefile => $basefile,
# url => $url
# )
# );
}
#print "]}\n";
%flobj = (filelist => \@filelist);
print encode_json \%flobj;
# Emacs variables ...
#Local variables:
#mode: perl
#End: