summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile-web17
-rwxr-xr-xtools/list_files.sh22
-rw-r--r--web/static-configuration3
-rw-r--r--web/staticall.php9
-rw-r--r--web/staticmoduleinfo.php7
5 files changed, 37 insertions, 21 deletions
diff --git a/Makefile-web b/Makefile-web
index 78954661..20a1a2f3 100644
--- a/Makefile-web
+++ b/Makefile-web
@@ -1,9 +1,9 @@
# This can be overridden on cmdline to generate pages elsewhere.
WEBDIR=/home/rusty/www/html/ccan
-ALL_PAGES=$(patsubst %, $(WEBDIR)/info/%.html, $(MODS_NORMAL) $(MODS_EXTERNAL))
-DIRECT_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/%.tar.bz2, $(MODS_NORMAL) $(MODS_EXTERNAL))
-DEPEND_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/with-deps/%.tar.bz2, $(MODS_NORMAL) $(MODS_EXTERNAL))
+ALL_PAGES=$(patsubst %, $(WEBDIR)/info/%.html, $(MODS))
+DIRECT_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/%.tar.bz2, $(MODS))
+DEPEND_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/with-deps/%.tar.bz2, $(MODS))
WEB_SUBDIRS=$(WEBDIR)/tarballs $(WEBDIR)/junkcode $(WEBDIR)/tarballs/with-deps $(WEBDIR)/info
JUNKDIRS=$(wildcard junkcode/*)
JUNKPAGES=$(JUNKDIRS:%=$(WEBDIR)/%.html)
@@ -40,7 +40,7 @@ $(WEBDIR)/ccan.tar.bz2: config.h Makefile Makefile-ccan $(shell git ls-files cca
$(ALL_PAGES): tools/doc_extract web/staticmoduleinfo.php
$(WEBDIR)/list.html: web/staticall.php tools/doc_extract $(DIRECT_TARBALLS) $(DEPEND_TARBALLS) $(WEBDIR)/ccan.tar.bz2 $(JUNKBALLS)
- php5 web/staticall.php ccan/ junkcode/ $(WEBDIR) > $@
+ php5 web/staticall.php ccan/ junkcode/ $(WEBDIR) $(MODS) > $@
$(WEBDIR)/upload.html: web/staticupload.php
php5 web/staticupload.php > $@
@@ -62,13 +62,16 @@ $(WEBDIR)/ccan.jpg: web/ccan.jpg
cp $< $@
$(WEBDIR)/info/%.html: $(WEBDIR)/tarballs/%.tar.bz2 $(WEBDIR)/tarballs/with-deps/%.tar.bz2
- URLPREFIX=../ php5 web/staticmoduleinfo.php `pwd`/ccan/$* > $@
+ @mkdir -p `dirname $@`
+ URLPREFIX=../`echo $* | tr -dc '/' | sed s',/,../,g'` php5 web/staticmoduleinfo.php `pwd`/ccan/$* $* > $@
$(WEBDIR)/tarballs/%.tar.bz2: ccan/%/_info clean-tree
- tar -c -j -f $@ $$(git ls-files ccan/$*) $$(git ls-files ccan/$* | xargs -n1 -r readlink | sed -n 's,^../../,,p' | sort -u)
+ @mkdir -p `dirname $@`
+ FILES=$$(tools/list_files.sh ccan/$*) && tar -c -j -f $@ $$FILES $$(echo $$FILES | xargs -n1 -r readlink | sed 's,^\(../\)*,,' | sort -u)
$(WEBDIR)/tarballs/with-deps/%.tar.bz2: ccan/%/_info tools/ccan_depends clean-tree
- tar -c -j -f $@ $$(git ls-files $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) ) ) $$(git ls-files $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) ) | xargs -n1 -r readlink | sed -n 's,^../../,,p' | sort -u)
+ @mkdir -p `dirname $@`
+ FILES=$$(tools/list_files.sh ccan/$* $$(tools/ccan_depends ccan/$*) ) && tar -c -j -f $@ $$FILES $$(echo $$FILES | xargs -n1 -r readlink | sed 's,^\(../\)*,,' | sort -u)
distclean: distclean-web
diff --git a/tools/list_files.sh b/tools/list_files.sh
new file mode 100755
index 00000000..b1125e34
--- /dev/null
+++ b/tools/list_files.sh
@@ -0,0 +1,22 @@
+#! /bin/sh
+# Script to list all files, for making tarballs.
+
+set -e
+if [ $# -eq 0 ]; then
+ echo Usage: list_files.sh '<ccandir>...' >&2
+ exit 1
+fi
+
+for d; do
+ # git ls-files recurses, but we want ignores correct :(
+ for f in `git ls-files $d | sed "s,^\($d/[^/]*\)/.*,\1," | uniq`; do
+ # Include subdirs, unless it's a separate module.
+ if [ -d "$f" ]; then
+ if [ ! -f "$f"/_info ]; then
+ $0 "$f"
+ fi
+ else
+ echo "$f"
+ fi
+ done
+done
diff --git a/web/static-configuration b/web/static-configuration
index 163a9327..66863805 100644
--- a/web/static-configuration
+++ b/web/static-configuration
@@ -5,9 +5,6 @@ $tempfolder = "/home/ccan/upload-temp/";
//location of upload script (for posting uploads)
$uploadscript = "http://ccodearchive.net/uploader.php";
-//infofile
-$infofile = '/_info';
-
//ccan admin
$ccanadmin = "rusty@rustcorp.com.au";
diff --git a/web/staticall.php b/web/staticall.php
index 1998e147..e976406b 100644
--- a/web/staticall.php
+++ b/web/staticall.php
@@ -25,13 +25,7 @@ Or you can just download the <a href="ccan.tar.bz2">tarball of everything includ
<th align="right">Download</th>
<?php
-$d = dir($argv[1]);
-$modules = array();
-while (false !== ($entry = $d->read())) {
- if ($entry[0] != '.' && is_file($argv[1].$entry."/_info")) {
- array_push($modules, $entry);
- }
-}
+$modules = array_slice($argv, 4);
sort($modules);
foreach ($modules as $module) {
@@ -49,7 +43,6 @@ foreach ($modules as $module) {
</tr>
<?php
}
-$d->close();
?>
</table>
diff --git a/web/staticmoduleinfo.php b/web/staticmoduleinfo.php
index 17c3454a..2174f7a5 100644
--- a/web/staticmoduleinfo.php
+++ b/web/staticmoduleinfo.php
@@ -4,7 +4,7 @@ include('logo.html');
include('menulist.html');
include('static-configuration');
$module_path=$argv[1];
-$module=basename($module_path);
+$module=$argv[2];
$maintainer=extract_field('maintainer',$module_path);
$author=extract_field('author',$module_path);
$summary=extract_field('summary',$module_path);
@@ -15,6 +15,7 @@ $dependencies=htmlspecialchars(shell_exec('tools/ccan_depends --direct '.$module
$extdepends=htmlspecialchars(shell_exec('tools/ccan_depends --compile --non-ccan '.$module_path));
$licence=extract_field('licence',$module_path);
$license=extract_field('license',$module_path);
+$url_prefix = getenv("URLPREFIX");
?>
<table align="center" bgcolor="lightblue" width="70%" border="0" cellpadding="3" cellspacing="1">
<tr align="center" bgcolor="FFFFCC">
@@ -22,8 +23,8 @@ $license=extract_field('license',$module_path);
<a href="<?=$repo_base.$module?>">Browse Source</a>
</td>
<td>
-<a href="../<?=$tar_dir?>/with-deps/<?=$module?>.tar.bz2">Download</a>
-<a href="../<?=$tar_dir?>/<?=$module?>.tar.bz2">(without any required ccan dependencies)</a>
+<a href="<?=$url_prefix?><?=$tar_dir?>/with-deps/<?=$module?>.tar.bz2">Download</a>
+<a href="<?=$url_prefix?><?=$tar_dir?>/<?=$module?>.tar.bz2">(without any required ccan dependencies)</a>
</tr>
</table>