mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-09-21 20:06:40 +00:00
Get rid of svnversion.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2010 Wildfire Games.
|
||||
/* Copyright (C) 2024 Wildfire Games.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
@@ -22,6 +22,6 @@
|
||||
|
||||
#include "precompiled.h"
|
||||
|
||||
wchar_t svn_revision[] =
|
||||
#include "../../build/svn_revision/svn_revision.txt"
|
||||
wchar_t build_version[] =
|
||||
#include "../../build/build_version/build_version.txt"
|
||||
;
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2010 Wildfire Games.
|
||||
/* Copyright (C) 2024 Wildfire Games.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
@@ -20,4 +20,4 @@
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
extern wchar_t svn_revision[];
|
||||
extern wchar_t build_version[];
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2023 Wildfire Games.
|
||||
/* Copyright (C) 2024 Wildfire Games.
|
||||
* This file is part of 0 A.D.
|
||||
*
|
||||
* 0 A.D. is free software: you can redistribute it and/or modify
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
#include "precompiled.h"
|
||||
|
||||
#include "lib/svn_revision.h"
|
||||
#include "lib/build_version.h"
|
||||
#include "lib/external_libraries/libsdl.h"
|
||||
#include "lib/posix/posix_utsname.h"
|
||||
#include "lib/timer.h"
|
||||
@@ -328,7 +328,7 @@ void RunHardwareDetection(bool writeSystemInfoBeforeDetection, Renderer::Backend
|
||||
Script::SetProperty(rq, settings, "build_opengles", CONFIG2_GLES);
|
||||
|
||||
Script::SetProperty(rq, settings, "build_datetime", std::string(__DATE__ " " __TIME__));
|
||||
Script::SetProperty(rq, settings, "build_revision", std::wstring(svn_revision));
|
||||
Script::SetProperty(rq, settings, "build_version", std::wstring(build_version));
|
||||
|
||||
Script::SetProperty(rq, settings, "build_msc", (int)MSC_VERSION);
|
||||
Script::SetProperty(rq, settings, "build_icc", (int)ICC_VERSION);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2021 Wildfire Games.
|
||||
/* Copyright (C) 2024 Wildfire Games.
|
||||
* This file is part of 0 A.D.
|
||||
*
|
||||
* 0 A.D. is free software: you can redistribute it and/or modify
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "Pyrogenesis.h"
|
||||
|
||||
#include "lib/sysdep/sysdep.h"
|
||||
#include "lib/svn_revision.h"
|
||||
#include "lib/build_version.h"
|
||||
|
||||
const char* engine_version = "0.0.27";
|
||||
const char* main_window_name = "0 A.D.";
|
||||
@@ -56,7 +56,7 @@ static void AppendAsciiFile(FILE* out, const OsPath& pathname)
|
||||
// for user convenience, bundle all logs into this file:
|
||||
void psBundleLogs(FILE* f)
|
||||
{
|
||||
fwprintf(f, L"SVN Revision: %ls\n\n", svn_revision);
|
||||
fwprintf(f, L"Build Version: %ls\n\n", build_version);
|
||||
fwprintf(f, L"Engine Version: %hs\n\n", engine_version);
|
||||
|
||||
fwprintf(f, L"System info:\n\n");
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2021 Wildfire Games.
|
||||
/* Copyright (C) 2024 Wildfire Games.
|
||||
* This file is part of 0 A.D.
|
||||
*
|
||||
* 0 A.D. is free software: you can redistribute it and/or modify
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "JSInterface_Debug.h"
|
||||
|
||||
#include "i18n/L10n.h"
|
||||
#include "lib/svn_revision.h"
|
||||
#include "lib/build_version.h"
|
||||
#include "lib/debug.h"
|
||||
#include "scriptinterface/FunctionWrapper.h"
|
||||
#include "scriptinterface/ScriptRequest.h"
|
||||
@@ -75,17 +75,17 @@ double GetBuildTimestamp()
|
||||
return std::time(nullptr);
|
||||
}
|
||||
|
||||
// Return the revision number at which the current executable was compiled.
|
||||
// - svn revision is generated by calling svnversion and cached in
|
||||
// lib/svn_revision.cpp. it is useful to know when attempting to
|
||||
// reproduce bugs (the main EXE and PDB should be temporarily reverted to
|
||||
// that revision so that they match user-submitted crashdumps).
|
||||
std::wstring GetBuildRevision()
|
||||
// Return the build version of the current executable.
|
||||
// - in nightly builds, build version is generated from the git HEAD branch and
|
||||
// hash and cached in lib/build_version.cpp. it is useful to know when attempting
|
||||
// to reproduce bugs (the main EXE and PDB should be temporarily reverted to
|
||||
// that commit so that they match user-submitted crashdumps).
|
||||
std::wstring GetBuildVersion()
|
||||
{
|
||||
std::wstring svnRevision(svn_revision);
|
||||
if (svnRevision == L"custom build")
|
||||
std::wstring buildVersion(build_version);
|
||||
if (buildVersion == L"custom build")
|
||||
return wstring_from_utf8(g_L10n.Translate("custom build"));
|
||||
return svnRevision;
|
||||
return buildVersion;
|
||||
}
|
||||
|
||||
void RegisterScriptFunctions(const ScriptRequest& rq)
|
||||
@@ -96,6 +96,6 @@ void RegisterScriptFunctions(const ScriptRequest& rq)
|
||||
ScriptFunction::Register<&DisplayErrorDialog>(rq, "DisplayErrorDialog");
|
||||
ScriptFunction::Register<&GetBuildDate>(rq, "GetBuildDate");
|
||||
ScriptFunction::Register<&GetBuildTimestamp>(rq, "GetBuildTimestamp");
|
||||
ScriptFunction::Register<&GetBuildRevision>(rq, "GetBuildRevision");
|
||||
ScriptFunction::Register<&GetBuildVersion>(rq, "GetBuildVersion");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
use inc::Module::Install;
|
||||
|
||||
name('SVNLog');
|
||||
abstract('Catalyst Application');
|
||||
author('Catalyst developer');
|
||||
version_from('lib/SVNLog.pm');
|
||||
license('perl');
|
||||
|
||||
include('ExtUtils::AutoInstall');
|
||||
|
||||
requires( Catalyst => '5.60' );
|
||||
|
||||
catalyst_files();
|
||||
|
||||
install_script( glob('script/*.pl') );
|
||||
auto_install();
|
||||
&WriteAll;
|
||||
@@ -1,11 +0,0 @@
|
||||
name: SVNLog
|
||||
svn:
|
||||
username: philip
|
||||
password: ????????
|
||||
url : http://svn.wildfiregames.com/svn/ps/trunk
|
||||
cdbi:
|
||||
dsn : dbi:SQLite:/var/svn/autolog/SVNLog/sql/svnlog.db
|
||||
output:
|
||||
filename: /var/svn/htdocs/log.html
|
||||
filename_feed: /var/svn/htdocs/log.atom
|
||||
feed_url: http://svn.wildfiregames.com/log.atom
|
||||
@@ -1,22 +0,0 @@
|
||||
package SVNLog;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use YAML ();
|
||||
|
||||
use Catalyst qw/FormValidator CDBI::Transaction/;
|
||||
|
||||
our $VERSION = '0.01';
|
||||
|
||||
__PACKAGE__->config(YAML::LoadFile(__PACKAGE__->path_to('config.yml')));
|
||||
|
||||
__PACKAGE__->setup;
|
||||
|
||||
sub end : Private {
|
||||
my ($self, $c) = @_;
|
||||
|
||||
$c->forward('SVNLog::View::TT') unless $c->response->body;
|
||||
}
|
||||
|
||||
1;
|
||||
@@ -1,219 +0,0 @@
|
||||
package SVNLog::Controller::LogUpdate;
|
||||
|
||||
use strict;
|
||||
use base 'Catalyst::Controller';
|
||||
|
||||
use XML::Simple;
|
||||
use XML::Atom::SimpleFeed;
|
||||
use Data::UUID;
|
||||
|
||||
sub doupdate : Local
|
||||
{
|
||||
my ($self, $c) = @_;
|
||||
|
||||
my $latest = SVNLog::Model::CDBI::Logentry->maximum_value_of('revision') || 0;
|
||||
my $min = $latest;
|
||||
my $max = 'HEAD';
|
||||
|
||||
my $svn_cmd_data = '--username '.$c->config->{svn}{username}.' --password '.$c->config->{svn}{password}.' '.$c->config->{svn}{url};
|
||||
my $log_xml = `svn log --xml --verbose -r $min:$max $svn_cmd_data`;
|
||||
die "SVN request failed" if not (defined $log_xml and $log_xml =~ m~</log>~);
|
||||
|
||||
my $log = XMLin($log_xml, ContentKey => 'path');
|
||||
|
||||
my $max_seen = -1;
|
||||
|
||||
$c->transaction(sub {
|
||||
for my $logentry (ref $log->{logentry} eq 'ARRAY' ? @{$log->{logentry}} : ($log->{logentry}))
|
||||
{
|
||||
$max_seen = $logentry->{revision} if $logentry->{revision} > $max_seen;
|
||||
next if $logentry->{revision} <= $latest;
|
||||
|
||||
my $paths = $logentry->{paths}->{path};
|
||||
delete $logentry->{paths};
|
||||
|
||||
# Convert <msg></msg> into just a string (because XML::Simple doesn't know that's what it should be)
|
||||
$logentry->{msg} = '' if ref $logentry->{msg};
|
||||
|
||||
my $entry = SVNLog::Model::CDBI::Logentry->insert($logentry);
|
||||
|
||||
for my $path (ref $paths eq 'ARRAY' ? @$paths : ($paths))
|
||||
{
|
||||
SVNLog::Model::CDBI::Paths->insert({logentry => $entry->id, filter_copyfrom(%$path)});
|
||||
}
|
||||
}
|
||||
}) or $c->log->error("Transaction failed: " . $c->error->[-1]);
|
||||
|
||||
add_default_public_msgs($c);
|
||||
|
||||
open my $text_fh, '>', $c->config->{output}{filename} or die $!;
|
||||
print $text_fh $self->generate_text($c);
|
||||
open my $feed_fh, '>', $c->config->{output}{filename_feed} or die $!;
|
||||
print $feed_fh $self->generate_feed($c);
|
||||
|
||||
$c->res->body("Updated log to $max_seen.");
|
||||
}
|
||||
|
||||
sub defaultise : Local
|
||||
{
|
||||
my ($self, $c) = @_;
|
||||
add_default_public_msgs($c);
|
||||
$c->res->body("Done");
|
||||
}
|
||||
|
||||
# (To reset the database:
|
||||
# delete from public_message; delete from sqlite_sequence where name = "public_message";
|
||||
# )
|
||||
|
||||
sub add_default_public_msgs
|
||||
{
|
||||
my ($c) = @_;
|
||||
|
||||
$c->transaction(sub {
|
||||
my @unmessaged = SVNLog::Model::CDBI::Logentry->retrieve_from_sql(qq{
|
||||
NOT (SELECT COUNT(*) FROM public_message WHERE public_message.logentry = logentry.id)
|
||||
ORDER BY logentry.id
|
||||
});
|
||||
for my $logentry (@unmessaged)
|
||||
{
|
||||
my @lines;
|
||||
for (split /\n/, $logentry->msg)
|
||||
{
|
||||
push @lines, $_ if s/^#\s*//;
|
||||
}
|
||||
my $msg = join "\n", @lines;
|
||||
|
||||
SVNLog::Model::CDBI::PublicMessage->insert({
|
||||
logentry => $logentry->id,
|
||||
msg => $msg,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
sub createtext : Local
|
||||
{
|
||||
my ($self, $c) = @_;
|
||||
my $out = $self->generate_text($c);
|
||||
$c->res->body($out);
|
||||
}
|
||||
|
||||
sub createfeed : Local
|
||||
{
|
||||
my ($self, $c) = @_;
|
||||
my $out = $self->generate_feed($c);
|
||||
$c->res->body($out);
|
||||
}
|
||||
|
||||
sub get_log_entries
|
||||
{
|
||||
my ($days, $max) = @_;
|
||||
my @logentries = ();
|
||||
for (SVNLog::Model::CDBI::Logentry->recent($days))
|
||||
{
|
||||
my $msg = $_->public_msg;
|
||||
next unless defined $msg and $msg->msg; # skip ones with empty messages
|
||||
|
||||
push @logentries, $_;
|
||||
|
||||
last if $max and @logentries >= $max;
|
||||
}
|
||||
return @logentries;
|
||||
}
|
||||
|
||||
sub generate_text
|
||||
{
|
||||
my ($self, $c) = @_;
|
||||
|
||||
my $feed_url = $c->config->{output}{feed_url};
|
||||
my $out = <<EOF;
|
||||
<!DOCTYPE html>
|
||||
<title>0 A.D. Revision Log</title>
|
||||
<style>
|
||||
body {
|
||||
color: #fff;
|
||||
margin: 3px;
|
||||
background-color: #000;
|
||||
font-family: Geneva, Arial, Helvetica, sans-serif;
|
||||
font-size: 10px;
|
||||
}
|
||||
img {
|
||||
border: 0;
|
||||
}
|
||||
</style>
|
||||
<a href="$feed_url" target="_top"><img alt="Atom feed" title="Subscribe to feed of revision log" src="/feed-icon-16x16.png" style="float: right"></a>
|
||||
EOF
|
||||
|
||||
my @logentries = get_log_entries(28, 10);
|
||||
|
||||
for (@logentries)
|
||||
{
|
||||
my ($revision, $author, $date, $msg) = ($_->revision, $_->author, $_->date, $_->public_msg);
|
||||
|
||||
$date =~ s/T.*Z//;
|
||||
$out .= <<EOF;
|
||||
<b>revision:</b> $revision<br>
|
||||
<b>author:</b> $author<br>
|
||||
<b>date:</b> $date<br>
|
||||
EOF
|
||||
my $text = $msg->msg;
|
||||
$text =~ s/&/&/g;
|
||||
$text =~ s/</</g;
|
||||
$text =~ s/>/>/g;
|
||||
$text =~ s/\n/<br>/g;
|
||||
$out .= $text . "\n<hr>\n";
|
||||
}
|
||||
|
||||
if (not @logentries)
|
||||
{
|
||||
$out .= 'Sorry, no data is available right now.';
|
||||
}
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
sub generate_feed
|
||||
{
|
||||
my ($self, $c) = @_;
|
||||
|
||||
my $uid_gen = new Data::UUID;
|
||||
|
||||
my $feed_url = $c->config->{output}{feed_url};
|
||||
|
||||
my $feed = new XML::Atom::SimpleFeed(
|
||||
title => "0 A.D. Revision Log",
|
||||
link => "http://play0ad.com/",
|
||||
link => { rel => 'self', href => $feed_url },
|
||||
id => "urn:uuid:" . $uid_gen->create_from_name_str('WFG SVN feed', 'feed'),
|
||||
);
|
||||
|
||||
my @logentries = get_log_entries(7);
|
||||
|
||||
for (@logentries)
|
||||
{
|
||||
my ($revision, $author, $date, $msg) = ($_->revision, $_->author, $_->date, $_->public_msg);
|
||||
|
||||
my $uid = $uid_gen->create_from_name_str('WFG SVN feed', $revision);
|
||||
|
||||
$feed->add_entry(
|
||||
title => "Revision $revision - ".$msg->msg,
|
||||
id => "urn:uuid:$uid",
|
||||
author => $author,
|
||||
content => $msg->msg,
|
||||
published => $date,
|
||||
updated => $date,
|
||||
link => "http://play0ad.com/",
|
||||
);
|
||||
}
|
||||
|
||||
return $feed->as_string;
|
||||
}
|
||||
|
||||
sub filter_copyfrom
|
||||
{
|
||||
my @r = @_;
|
||||
s/^(copyfrom)-(rev|path)$/$1_$2/ for @r;
|
||||
@r;
|
||||
}
|
||||
|
||||
1;
|
||||
@@ -1,41 +0,0 @@
|
||||
package SVNLog::Controller::PublicMessage;
|
||||
|
||||
use strict;
|
||||
use base 'Catalyst::Base';
|
||||
|
||||
sub default : Private {
|
||||
my ( $self, $c ) = @_;
|
||||
$c->forward('list');
|
||||
}
|
||||
|
||||
sub do_edit : Local {
|
||||
my ( $self, $c, $id ) = @_;
|
||||
$c->form(optional => [ SVNLog::Model::CDBI::PublicMessage->columns ],
|
||||
missing_optional_valid => 1 );
|
||||
if ($c->form->has_missing) {
|
||||
$c->stash->{message}='You have to fill in all fields.'.
|
||||
'the following are missing: <b>'.
|
||||
join(', ',$c->form->missing()).'</b>';
|
||||
} elsif ($c->form->has_invalid) {
|
||||
$c->stash->{message}='Some fields are not correctly filled in.'.
|
||||
'the following are invalid: <b>'.
|
||||
join(', ',$c->form->invalid()).'</b>';
|
||||
} else {
|
||||
SVNLog::Model::CDBI::PublicMessage->retrieve($id)->update_from_form( $c->form );
|
||||
$c->stash->{message}='Updated OK';
|
||||
}
|
||||
$c->forward('edit');
|
||||
}
|
||||
|
||||
sub edit : Local {
|
||||
my ( $self, $c, $id ) = @_;
|
||||
$c->stash->{item} = SVNLog::Model::CDBI::PublicMessage->retrieve($id);
|
||||
$c->stash->{template} = 'PublicMessage/edit.tt';
|
||||
}
|
||||
|
||||
sub list : Local {
|
||||
my ( $self, $c ) = @_;
|
||||
$c->stash->{template} = 'PublicMessage/list.tt';
|
||||
}
|
||||
|
||||
1;
|
||||
@@ -1,15 +0,0 @@
|
||||
package SVNLog::Model::CDBI;
|
||||
|
||||
use strict;
|
||||
use base 'Catalyst::Model::CDBI';
|
||||
|
||||
__PACKAGE__->config(
|
||||
dsn => SVNLog->config->{cdbi}{dsn},
|
||||
user => '',
|
||||
password => '',
|
||||
options => {},
|
||||
relationships => 1,
|
||||
additional_base_classes => [qw/Class::DBI::FromForm Class::DBI::AsForm/],
|
||||
);
|
||||
|
||||
1;
|
||||
@@ -1,9 +0,0 @@
|
||||
package SVNLog::Model::CDBI::Logentry;
|
||||
|
||||
use strict;
|
||||
|
||||
__PACKAGE__->add_constructor(recent => "datetime(substr(date, 0, 26)) >= datetime('now', -? || ' days') ORDER BY revision DESC");
|
||||
|
||||
__PACKAGE__->might_have(public_msg => 'SVNLog::Model::CDBI::PublicMessage');
|
||||
|
||||
1;
|
||||
@@ -1,5 +0,0 @@
|
||||
package SVNLog::Model::CDBI::Paths;
|
||||
|
||||
use strict;
|
||||
|
||||
1;
|
||||
@@ -1,13 +0,0 @@
|
||||
package SVNLog::Model::CDBI::PublicMessage;
|
||||
|
||||
use strict;
|
||||
|
||||
__PACKAGE__->set_sql(log_range => qq{
|
||||
SELECT __TABLE__.id
|
||||
FROM __TABLE__
|
||||
JOIN logentry ON __TABLE__.logentry = logentry.id
|
||||
ORDER BY revision DESC
|
||||
LIMIT ? OFFSET ?
|
||||
});
|
||||
|
||||
1;
|
||||
@@ -1,6 +0,0 @@
|
||||
package SVNLog::View::TT;
|
||||
|
||||
use strict;
|
||||
use base 'Catalyst::View::TT';
|
||||
|
||||
1;
|
||||
@@ -1,25 +0,0 @@
|
||||
|
||||
<p>[% message %]</p>
|
||||
|
||||
<form action="[% c.uri_for('/publicmessage/do_edit', item.id) %]" method="post">
|
||||
|
||||
Revision<br/>
|
||||
[% item.logentry.revision %]<br/>
|
||||
<br/>
|
||||
|
||||
Log message<br/>
|
||||
<tt>[% item.logentry.msg | html_line_break %]</tt><br/>
|
||||
<br/>
|
||||
|
||||
Public message<br/>
|
||||
[%
|
||||
textarea = item.to_field('msg');
|
||||
CALL textarea.attr('rows', 10);
|
||||
CALL textarea.attr('cols', 60);
|
||||
textarea.as_XML
|
||||
%]
|
||||
<br/>
|
||||
<input type="submit" value="Save changes"/>
|
||||
</form>
|
||||
<br/>
|
||||
<a href="[% c.uri_for('/publicmessage/list') %]">Back to list</a>
|
||||
@@ -1,36 +0,0 @@
|
||||
|
||||
[% USE table_class = Class('SVNLog::Model::CDBI::PublicMessage') %]
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>Revision</th>
|
||||
<th>Author</th>
|
||||
<th>Date</th>
|
||||
<th>Log message</th>
|
||||
<th>Public message</th>
|
||||
<th/>
|
||||
</tr>
|
||||
[%
|
||||
count = 20;
|
||||
start = c.req.param('start') || 0;
|
||||
%]
|
||||
[% FOR object = table_class.search_log_range(count, start) %]
|
||||
<tr>
|
||||
<td>[% object.logentry.revision %]</td>
|
||||
<td>[% object.logentry.author %]</td>
|
||||
<td>[% str = object.logentry.date.match('(\d{4}-\d{2}-\d{2}).(\d{2}:\d{2}:\d{2})');
|
||||
str.0 %] [% str.1 %]</td>
|
||||
<td>[% object.logentry.msg | html | html_line_break %]</td>
|
||||
<td>[% object.msg | html | html_line_break %]</td>
|
||||
<td>
|
||||
<a href="[% c.uri_for('/publicmessage/edit', object.id) %]">
|
||||
Edit
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% END %]
|
||||
</table>
|
||||
|
||||
[% IF start > 0 %]
|
||||
<a href="[% c.uri_for('/publicmessage/list') _ '?start=' _ (start-count) %]">Previous page</a> |
|
||||
[% END %]
|
||||
<a href="[% c.uri_for('/publicmessage/list') _ '?start=' _ (start+count) %]">Next page</a>
|
||||
@@ -1,37 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
BEGIN { $ENV{CATALYST_ENGINE} ||= 'CGI' }
|
||||
|
||||
use strict;
|
||||
use FindBin;
|
||||
use lib "$FindBin::Bin/../lib";
|
||||
use SVNLog;
|
||||
|
||||
SVNLog->run;
|
||||
|
||||
1;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
svnlog_cgi.pl - Catalyst CGI
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
See L<Catalyst::Manual>
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Run a Catalyst application as cgi.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Sebastian Riedel, C<sri@oook.de>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2004 Sebastian Riedel. All rights reserved.
|
||||
|
||||
This library is free software, you can redistribute it and/or modify
|
||||
it under the same terms as Perl itself.
|
||||
|
||||
=cut
|
||||
@@ -1,72 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use Pod::Usage;
|
||||
use Catalyst::Helper;
|
||||
|
||||
my $force = 0;
|
||||
my $mech = 0;
|
||||
my $help = 0;
|
||||
|
||||
GetOptions(
|
||||
'nonew|force' => \$force,
|
||||
'mech|mechanize' => \$mech,
|
||||
'help|?' => \$help
|
||||
);
|
||||
|
||||
pod2usage(1) if ( $help || !$ARGV[0] );
|
||||
|
||||
my $helper = Catalyst::Helper->new( { '.newfiles' => !$force, mech => $mech } );
|
||||
|
||||
pod2usage(1) unless $helper->mk_component( 'SVNLog', @ARGV );
|
||||
|
||||
1;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
svnlog_create.pl - Create a new Catalyst Component
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
svnlog_create.pl [options] model|view|controller name [helper] [options]
|
||||
|
||||
Options:
|
||||
-force don't create a .new file where a file to be created exists
|
||||
-mechanize use Test::WWW::Mechanize::Catalyst for tests if available
|
||||
-help display this help and exits
|
||||
|
||||
Examples:
|
||||
svnlog_create.pl controller My::Controller
|
||||
svnlog_create.pl -mechanize controller My::Controller
|
||||
svnlog_create.pl view My::View
|
||||
svnlog_create.pl view MyView TT
|
||||
svnlog_create.pl view TT TT
|
||||
svnlog_create.pl model My::Model
|
||||
svnlog_create.pl model SomeDB CDBI dbi:SQLite:/tmp/my.db
|
||||
svnlog_create.pl model AnotherDB CDBI dbi:Pg:dbname=foo root 4321
|
||||
|
||||
See also:
|
||||
perldoc Catalyst::Manual
|
||||
perldoc Catalyst::Manual::Intro
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Create a new Catalyst Component.
|
||||
|
||||
Existing component files are not overwritten. If any of the component files
|
||||
to be created already exist the file will be written with a '.new' suffix.
|
||||
This behavior can be suppressed with the C<-force> option.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Sebastian Riedel, C<sri@oook.de>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2004 Sebastian Riedel. All rights reserved.
|
||||
|
||||
This library is free software, you can redistribute it and/or modify
|
||||
it under the same terms as Perl itself.
|
||||
|
||||
=cut
|
||||
@@ -1,76 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' }
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use Pod::Usage;
|
||||
use FindBin;
|
||||
use lib "$FindBin::Bin/../lib";
|
||||
use SVNLog;
|
||||
|
||||
my $help = 0;
|
||||
my ( $listen, $nproc, $pidfile, $manager, $detach );
|
||||
|
||||
GetOptions(
|
||||
'help|?' => \$help,
|
||||
'listen|l=s' => \$listen,
|
||||
'nproc|n=i' => \$nproc,
|
||||
'pidfile|p=s' => \$pidfile,
|
||||
'manager|M=s' => \$manager,
|
||||
'daemon|d' => \$detach,
|
||||
);
|
||||
|
||||
pod2usage(1) if $help;
|
||||
|
||||
SVNLog->run(
|
||||
$listen,
|
||||
{ nproc => $nproc,
|
||||
pidfile => $pidfile,
|
||||
manager => $manager,
|
||||
detach => $detach,
|
||||
}
|
||||
);
|
||||
|
||||
1;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
svnlog_fastcgi.pl - Catalyst FastCGI
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
svnlog_fastcgi.pl [options]
|
||||
|
||||
Options:
|
||||
-? -help display this help and exits
|
||||
-l -listen Socket path to listen on
|
||||
(defaults to standard input)
|
||||
can be HOST:PORT, :PORT or a
|
||||
filesystem path
|
||||
-n -nproc specify number of processes to keep
|
||||
to serve requests (defaults to 1,
|
||||
requires -listen)
|
||||
-p -pidfile specify filename for pid file
|
||||
(requires -listen)
|
||||
-d -daemon daemonize (requires -listen)
|
||||
-M -manager specify alternate process manager
|
||||
(FCGI::ProcManager sub-class)
|
||||
or empty string to disable
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Run a Catalyst application as fastcgi.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Sebastian Riedel, C<sri@oook.de>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2004 Sebastian Riedel. All rights reserved.
|
||||
|
||||
This library is free software, you can redistribute it and/or modify
|
||||
it under the same terms as Perl itself.
|
||||
|
||||
=cut
|
||||
@@ -1,104 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
BEGIN {
|
||||
$ENV{CATALYST_ENGINE} ||= 'HTTP';
|
||||
$ENV{CATALYST_SCRIPT_GEN} = 27;
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use Pod::Usage;
|
||||
use FindBin;
|
||||
use lib "$FindBin::Bin/../lib";
|
||||
|
||||
my $debug = 0;
|
||||
my $fork = 0;
|
||||
my $help = 0;
|
||||
my $host = undef;
|
||||
my $port = 3000;
|
||||
my $keepalive = 0;
|
||||
my $restart = 0;
|
||||
my $restart_delay = 1;
|
||||
my $restart_regex = '\.yml$|\.yaml$|\.pm$';
|
||||
|
||||
my @argv = @ARGV;
|
||||
|
||||
GetOptions(
|
||||
'debug|d' => \$debug,
|
||||
'fork' => \$fork,
|
||||
'help|?' => \$help,
|
||||
'host=s' => \$host,
|
||||
'port=s' => \$port,
|
||||
'keepalive|k' => \$keepalive,
|
||||
'restart|r' => \$restart,
|
||||
'restartdelay|rd=s' => \$restart_delay,
|
||||
'restartregex|rr=s' => \$restart_regex
|
||||
);
|
||||
|
||||
pod2usage(1) if $help;
|
||||
|
||||
if ( $restart ) {
|
||||
$ENV{CATALYST_ENGINE} = 'HTTP::Restarter';
|
||||
}
|
||||
if ( $debug ) {
|
||||
$ENV{CATALYST_DEBUG} = 1;
|
||||
}
|
||||
|
||||
# This is require instead of use so that the above environment
|
||||
# variables can be set at runtime.
|
||||
require SVNLog;
|
||||
|
||||
SVNLog->run( $port, $host, {
|
||||
argv => \@argv,
|
||||
'fork' => $fork,
|
||||
keepalive => $keepalive,
|
||||
restart => $restart,
|
||||
restart_delay => $restart_delay,
|
||||
restart_regex => qr/$restart_regex/
|
||||
} );
|
||||
|
||||
1;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
svnlog_server.pl - Catalyst Testserver
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
svnlog_server.pl [options]
|
||||
|
||||
Options:
|
||||
-d -debug force debug mode
|
||||
-f -fork handle each request in a new process
|
||||
(defaults to false)
|
||||
-? -help display this help and exits
|
||||
-host host (defaults to all)
|
||||
-p -port port (defaults to 3000)
|
||||
-k -keepalive enable keep-alive connections
|
||||
-r -restart restart when files got modified
|
||||
(defaults to false)
|
||||
-rd -restartdelay delay between file checks
|
||||
-rr -restartregex regex match files that trigger
|
||||
a restart when modified
|
||||
(defaults to '\.yml$|\.yaml$|\.pm$')
|
||||
|
||||
See also:
|
||||
perldoc Catalyst::Manual
|
||||
perldoc Catalyst::Manual::Intro
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Run a Catalyst Testserver for this application.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Sebastian Riedel, C<sri@oook.de>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2004 Sebastian Riedel. All rights reserved.
|
||||
|
||||
This library is free software, you can redistribute it and/or modify
|
||||
it under the same terms as Perl itself.
|
||||
|
||||
=cut
|
||||
@@ -1,54 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use Pod::Usage;
|
||||
use FindBin;
|
||||
use lib "$FindBin::Bin/../lib";
|
||||
use Catalyst::Test 'SVNLog';
|
||||
|
||||
my $help = 0;
|
||||
|
||||
GetOptions( 'help|?' => \$help );
|
||||
|
||||
pod2usage(1) if ( $help || !$ARGV[0] );
|
||||
|
||||
print request($ARGV[0])->content . "\n";
|
||||
|
||||
1;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
svnlog_test.pl - Catalyst Test
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
svnlog_test.pl [options] uri
|
||||
|
||||
Options:
|
||||
-help display this help and exits
|
||||
|
||||
Examples:
|
||||
svnlog_test.pl http://localhost/some_action
|
||||
svnlog_test.pl /some_action
|
||||
|
||||
See also:
|
||||
perldoc Catalyst::Manual
|
||||
perldoc Catalyst::Manual::Intro
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Run a Catalyst action from the command line.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Sebastian Riedel, C<sri@oook.de>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2004 Sebastian Riedel. All rights reserved.
|
||||
|
||||
This library is free software, you can redistribute it and/or modify
|
||||
it under the same terms as Perl itself.
|
||||
|
||||
=cut
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
sqlite3 svnlog.db < svnlog.sql
|
||||
@@ -1,24 +0,0 @@
|
||||
CREATE TABLE logentry (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
revision INTEGER UNIQUE,
|
||||
author TEXT,
|
||||
date TEXT,
|
||||
msg TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE paths (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
logentry INTEGER REFERENCES logentry,
|
||||
action TEXT,
|
||||
copyfrom_path TEXT,
|
||||
copyfrom_rev INTEGER,
|
||||
path TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE public_message (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
logentry INTEGER REFERENCES logentry,
|
||||
msg TEXT
|
||||
);
|
||||
CREATE INDEX public_message_logentry ON public_message (logentry);
|
||||
|
||||
Vendored
+2
-2
@@ -1,6 +1,6 @@
|
||||
; To generate the installer (on Linux):
|
||||
; Do an 'svn export' into a directory called e.g. "export-win32"
|
||||
; makensis -nocd -dcheckoutpath=export-win32 -drevision=1234 -dversion=0.1.2 -dprefix=0ad-0.1.2-alpha export-win32/source/tools/dist/0ad.nsi
|
||||
; makensis -nocd -dcheckoutpath=export-win32 -dversion=0.1.2 -dprefix=0ad-0.1.2-alpha export-win32/source/tools/dist/0ad.nsi
|
||||
|
||||
SetCompressor /SOLID LZMA
|
||||
|
||||
@@ -164,7 +164,7 @@ Section "!Game and data files" GameSection
|
||||
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\0 A.D." "DisplayName" "0 A.D."
|
||||
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\0 A.D." "DisplayVersion" "${VERSION}"
|
||||
WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\0 A.D." "VersionMajor" 0
|
||||
WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\0 A.D." "VersionMinor" ${REVISION}
|
||||
WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\0 A.D." "VersionMinor" "${VERSION}"
|
||||
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\0 A.D." "Publisher" "Wildfire Games"
|
||||
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\0 A.D." "DisplayIcon" "$\"$INSTDIR\binaries\system\pyrogenesis.exe$\""
|
||||
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\0 A.D." "InstallLocation" "$\"$INSTDIR$\""
|
||||
|
||||
-4
@@ -27,10 +27,6 @@ if [ ! -d "${SYSROOT}" ]; then
|
||||
die "${SYSROOT} does not exist! You probably need to install Xcode"
|
||||
fi
|
||||
|
||||
# Assume this is called from trunk/
|
||||
SVN_REV=$(svnversion -n .)
|
||||
echo "L\"${SVN_REV}-release\"" > build/svn_revision/svn_revision.txt
|
||||
|
||||
cd "build/workspaces/"
|
||||
|
||||
JOBS=${JOBS:="-j5"}
|
||||
|
||||
-4
@@ -7,9 +7,6 @@ GZIP7ZOPTS="-mx=9"
|
||||
BUNDLE_VERSION=${BUNDLE_VERSION:="0.0.xxx"}
|
||||
PREFIX="0ad-${BUNDLE_VERSION}-alpha"
|
||||
|
||||
SVN_REV=${SVN_REV:=$(svnversion -n .)}
|
||||
echo "L\"${SVN_REV}-release\"" > build/svn_revision/svn_revision.txt
|
||||
|
||||
# Collect the relevant files
|
||||
tar cf $PREFIX-unix-build.tar \
|
||||
--exclude='*.bat' --exclude='*.dll' --exclude='*.exe' --exclude='*.lib' \
|
||||
@@ -40,7 +37,6 @@ fi
|
||||
# This needs nsisbi for files > 2GB
|
||||
makensis -V4 -nocd \
|
||||
-dcheckoutpath="." \
|
||||
-drevision=${SVN_REV} \
|
||||
-dversion=${BUNDLE_VERSION} \
|
||||
-dprefix=${PREFIX} \
|
||||
-darchive_path="archives/" \
|
||||
|
||||
@@ -73,7 +73,7 @@ def report_performance(request):
|
||||
'cpu_identifier': json['cpu_identifier'],
|
||||
'device': report.gl_device_identifier(),
|
||||
'build_debug': json['build_debug'],
|
||||
'build_revision': json['build_revision'],
|
||||
'build_version': json['build_version'],
|
||||
'build_datetime': json['build_datetime'],
|
||||
'gfx_res': (json['video_xres'], json['video_yres']),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user