From 8fc1b23065309df44a3725ec7dba76dfebc9cbd2 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 22 Nov 2012 11:02:21 +1030 Subject: [PATCH] web: generate correct pages for submodules. Signed-off-by: Rusty Russell --- Makefile-web | 17 ++++++++++------- tools/list_files.sh | 22 ++++++++++++++++++++++ web/static-configuration | 3 --- web/staticall.php | 9 +-------- web/staticmoduleinfo.php | 7 ++++--- 5 files changed, 37 insertions(+), 21 deletions(-) create mode 100755 tools/list_files.sh 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 '...' >&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 tarball of everything includ Download 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) { close(); ?> 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"); ?> @@ -22,8 +23,8 @@ $license=extract_field('license',$module_path); Browse Source
-Download -(without any required ccan dependencies) +Download +(without any required ccan dependencies)
-- 2.39.2