mirror of
https://github.com/standardebooks/web.git
synced 2025-07-06 23:00:28 -04:00
Add --weburl parameter.
This commit is contained in:
parent
8349f9268b
commit
46fe654fac
4 changed files with 28 additions and 15 deletions
|
@ -9,3 +9,5 @@ To use, call this script with the directories of the books you want to deploy as
|
|||
The default web root is /standardebooks.org. If it is located elsewhere, specify it with the --webroot option. For instance, `deploy-ebook-to-www --webroot /var/www/html /path/to/ebook`. Note that there will be php errors if the git repositories are not in the ebook directory immediately in the web root. Either keep them there or create a symlink.
|
||||
|
||||
The default group is se. to use a different one, specify it with the --group option. For instance, to use this script inside the included Vagrant VM, which uses the www-data group, use `deploy-ebook-to-www --group www-data /path/to/ebook`.
|
||||
|
||||
The default URL is `https://standardebooks.org`. To change it, use the --weburl option. For example, `deploy-ebook-to-www --weburl "http://localhost:8080". This option will cause deploy-ebook-to-www to use the specified URL in the generated opds and rss files. Care should be taken however; the URL `https://standardebooks.org` is hardcoded in a few places, even when `SITE_URL` is changed to a custom URL, so for testing, it may be more convenient to simply use /etc/hosts or a similar mechanism to resolve `standardebooks.org` to `127.0.0.1`.
|
||||
|
|
|
@ -6,10 +6,11 @@ DESCRIPTION
|
|||
Deploy a Standard Ebook source repository to the web.
|
||||
|
||||
USAGE
|
||||
deploy-ebook-to-www [-v,--verbose] [-g,--group GROUP] [--webroot WEBROOT] DIRECTORY [DIRECTORY...]
|
||||
deploy-ebook-to-www [-v,--verbose] [-g,--group GROUP] [--webroot WEBROOT] [--weburl WEBURL] DIRECTORY [DIRECTORY...]
|
||||
DIRECTORY is a bare source repository.
|
||||
GROUP is a groupname. Defaults to "se".
|
||||
WEBROOT is the path to your webroot. Defaults to "/standardebooks.org".
|
||||
WEBURL is the URL the website is served on. Defaults to "https://standardebooks.org".
|
||||
EOF
|
||||
exit
|
||||
}
|
||||
|
@ -20,6 +21,7 @@ require(){ command -v "$1" > /dev/null 2>&1 || { suggestion=""; if [ -n "$2" ];
|
|||
verbose="false"
|
||||
group="se"
|
||||
webRoot="/standardebooks.org"
|
||||
webUrl="https://standardebooks.org"
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
usage
|
||||
|
@ -43,6 +45,11 @@ while [ $# -gt 0 ]; do
|
|||
webRoot="$2"
|
||||
shift 2
|
||||
;;
|
||||
--weburl)
|
||||
[ -n "$2" ] || die "Web URL can't be empty."
|
||||
webUrl="$2"
|
||||
shift 2
|
||||
;;
|
||||
*) break ;;
|
||||
esac
|
||||
done
|
||||
|
@ -210,7 +217,7 @@ if [ "${verbose}" = "true" ]; then
|
|||
printf "Rebuilding OPDS catalog ... "
|
||||
fi
|
||||
|
||||
bash -c "php \"${scriptsDir}\"/generate-opds.php --webroot \"${webRoot}\" > \"${webRoot}\"/www/opds/all.xml; export XMLLINT_INDENT=\$(printf \"\\t\") && xmllint --c14n \"${webRoot}\"/www/opds/all.xml | (printf \"%s\\n\" \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?>\" && cat) | xmllint --output \"${webRoot}\"/www/opds/all.xml --format -"
|
||||
bash -c "php \"${scriptsDir}\"/generate-opds.php --webroot \"${webRoot}\" --weburl \"${webUrl}\" > \"${webRoot}\"/www/opds/all.xml; export XMLLINT_INDENT=\$(printf \"\\t\") && xmllint --c14n \"${webRoot}\"/www/opds/all.xml | (printf \"%s\\n\" \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?>\" && cat) | xmllint --output \"${webRoot}\"/www/opds/all.xml --format -"
|
||||
|
||||
if [ "${verbose}" = "true" ]; then
|
||||
printf "Done.\n"
|
||||
|
@ -221,7 +228,7 @@ if [ "${verbose}" = "true" ]; then
|
|||
printf "Rebuilding new releases RSS feed ... "
|
||||
fi
|
||||
|
||||
bash -c "php \"${scriptsDir}\"/generate-rss.php --webroot \"${webRoot}\" > \"${webRoot}\"/www/rss/new-releases.xml"
|
||||
bash -c "php \"${scriptsDir}\"/generate-rss.php --webroot \"${webRoot}\" --weburl \"${webUrl}\" > \"${webRoot}\"/www/rss/new-releases.xml"
|
||||
|
||||
if [ "${verbose}" = "true" ]; then
|
||||
printf "Done.\n"
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
<?
|
||||
$longopts = array("webroot:");
|
||||
$longopts = array("webroot:", "weburl:");
|
||||
$options = getopt("", $longopts);
|
||||
$webRoot = $options["webroot"] ?? "/standardebooks.org";
|
||||
$webUrl = $options["weburl"] ?? "https://standardebooks.org";
|
||||
|
||||
$contentFiles = explode("\n", trim(shell_exec('find ' . escapeshellarg($webRoot . '/www/ebooks/') . ' -name "content.opf" | sort') ?? ''));
|
||||
|
||||
print("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
|
||||
?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:schema="http://schema.org/">
|
||||
<id>https://standardebooks.org/opds/all</id>
|
||||
<link href="https://standardebooks.org/opds/all" rel="self" type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||
<link href="https://standardebooks.org/opds/" rel="start" type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||
<id><?= $webUrl ?>/opds/all</id>
|
||||
<link href="<?= $webUrl ?>/opds/all" rel="self" type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||
<link href="<?= $webUrl ?>/opds/" rel="start" type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||
<title>All Standard Ebooks</title>
|
||||
<subtitle>Free and liberated ebooks, carefully produced for the true book lover.</subtitle>
|
||||
<icon>https://standardebooks.org/images/logo.png</icon>
|
||||
<icon><?= $webUrl ?>/images/logo.png</icon>
|
||||
<updated><?= gmdate('Y-m-d\TH:i:s\Z') ?></updated>
|
||||
<author>
|
||||
<name>Standard Ebooks</name>
|
||||
<uri>https://standardebooks.org</uri>
|
||||
<uri><?= $webUrl ?></uri>
|
||||
</author>
|
||||
<? foreach($contentFiles as $path){
|
||||
if($path == '')
|
||||
|
@ -29,7 +30,8 @@ print("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
|
|||
$authors = array();
|
||||
$temp = $xml->xpath('/package/metadata/dc:identifier') ?: [];
|
||||
$url = preg_replace('/^url:/ius', '', (string)array_shift($temp)) ?? '';
|
||||
$relativeUrl = preg_replace('/^https:\/\/standardebooks.org/ius', '', $url) ?? '';
|
||||
$url = preg_replace('/^https:\/\/standardebooks.org/ius', $webUrl, $url) ?? '';
|
||||
$relativeUrl = preg_replace('/^' . preg_quote($webUrl, '/') . '/ius', '', $url) ?? '';
|
||||
|
||||
$temp = $xml->xpath('/package/metadata/dc:title') ?: [];
|
||||
$title = array_shift($temp);
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
<?
|
||||
$longopts = array("webroot:");
|
||||
$longopts = array("webroot:", "weburl:");
|
||||
$options = getopt("", $longopts);
|
||||
$webRoot = $options["webroot"] ?? "/standardebooks.org";
|
||||
$webUrl = $options["weburl"] ?? "https://standardebooks.org";
|
||||
|
||||
$rssLength = 30;
|
||||
$contentFiles = explode("\n", trim(shell_exec('find ' . escapeshellarg($webRoot . '/www/ebooks/') . ' -name "content.opf" | sort') ?? ''));
|
||||
|
@ -30,24 +31,25 @@ print("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
|
|||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Standard Ebooks - New Releases</title>
|
||||
<link>https://standardebooks.org</link>
|
||||
<link><?= $webUrl ?></link>
|
||||
<description>A list of the <?= number_format($rssLength) ?> latest Standard Ebooks ebook releases, most-recently-released first.</description>
|
||||
<language>en-US</language>
|
||||
<copyright>https://creativecommons.org/publicdomain/zero/1.0/</copyright>
|
||||
<lastBuildDate><?= gmdate('D, d M Y H:i:s +0000') ?></lastBuildDate>
|
||||
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
|
||||
<atom:link href="https://standardebooks.org/rss/new-releases" rel="self" type="application/rss+xml" />
|
||||
<atom:link href="<?= $webUrl ?>/rss/new-releases" rel="self" type="application/rss+xml" />
|
||||
<image>
|
||||
<url>https://standardebooks.org/images/logo-rss.png</url>
|
||||
<url><?= $webUrl ?>/images/logo-rss.png</url>
|
||||
<title>Standard Ebooks - New Releases</title>
|
||||
<description>The Standard Ebooks logo</description>
|
||||
<link>https://standardebooks.org</link>
|
||||
<link><?= $webUrl ?></link>
|
||||
<height>144</height>
|
||||
<width>144</width>
|
||||
</image>
|
||||
<? foreach($sortedContentFiles as $xml){
|
||||
$temp = $xml->xpath('/package/metadata/dc:identifier') ?: [];
|
||||
$url = preg_replace('/^url:/ius', '', (string)array_shift($temp) ?? '') ?? '';
|
||||
$url = preg_replace('/^https:\/\/standardebooks.org/ius', $webUrl, $url) ?? '';
|
||||
|
||||
$temp = $xml->xpath('/package/metadata/dc:title') ?: [];
|
||||
$title = array_shift($temp) ?? '';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue