die_error() is an immediate and abrupt action. show_warning() more or less functions identically, except that the page generated doesn't use the gitweb header or footer (in case they are broken) and has an auto-refresh (10 seconds) built into it. This makes use of print_transient_header() which is also used in the 'Generating...' page. Currently the only warning it throws is about the cache needing to be created. If that fails it's a fatal error and we call die_error() Signed-off-by: John 'Warthog9' Hawley <warthog9@xxxxxxxxxxxxxx> --- gitweb/lib/cache.pl | 36 +++++++++++++++++++++++++++++++++--- 1 files changed, 33 insertions(+), 3 deletions(-) diff --git a/gitweb/lib/cache.pl b/gitweb/lib/cache.pl index 723ae9b..28e4240 100644 --- a/gitweb/lib/cache.pl +++ b/gitweb/lib/cache.pl @@ -25,9 +25,13 @@ sub cache_fetch { my $cacheTime = 0; if(! -d $cachedir){ - print "*** Warning ***: Caching enabled but cache directory does not exsist. ($cachedir)\n"; - mkdir ("cache", 0755) || die "Cannot create cache dir - you will need to manually create"; - print "Cache directory created successfully\n"; + mkdir ("cache", 0755) || die_error(500, "Internal Server Error", "Cannot create cache dir () - you will need to manually create"); + show_warning( + "<p>". + "<strong>*** Warning ***:</strong> Caching enabled but cache directory did not exsist. ($cachedir)<br/>/\n". + "Cache directory created successfully\n". + "<p>" + ); } $full_url = "$my_url?". $ENV{'QUERY_STRING'}; @@ -119,6 +123,32 @@ sub print_transient_header { return; } +sub show_warning { + $| = 1; + + my $warning = esc_html(shift) || "Unknown Warning"; + + print_transient_header(); + + print <<EOF; +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www/w3.porg/TR/html4/strict.dtd"> +<!-- git web w/caching interface version $version, (C) 2006-2010, John 'Warthog9' Hawley <warthog9\@kernel.org> --> +<!-- git core binaries version $git_version --> +<head> +<meta http-equiv="content-type" content="$content_type; charset=utf-8"/> +<meta name="generator" content="gitweb/$version git/$git_version"/> +<meta name="robots" content="index, nofollow"/> +<meta http-equiv="refresh" content="10"/> +<title>$title</title> +</head> +<body> +$warning +</body> +</html> +EOF + exit(0); +} + sub isBinaryAction { my ($action) = @_; -- 1.7.2.3 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html