diff options
Diffstat (limited to 'rt/sbin/factory')
-rw-r--r-- | rt/sbin/factory | 98 |
1 files changed, 22 insertions, 76 deletions
diff --git a/rt/sbin/factory b/rt/sbin/factory index 743d8b9..882e4a8 100644 --- a/rt/sbin/factory +++ b/rt/sbin/factory @@ -1,9 +1,9 @@ -#!/usr/bin/perl -w -# BEGIN BPS TAGGED BLOCK {{{ +#!/usr/bin/perl +# {{{ BEGIN BPS TAGGED BLOCK # # COPYRIGHT: # -# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -43,8 +43,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# END BPS TAGGED BLOCK }}} -use strict; +# }}} END BPS TAGGED BLOCK use DBI; my $database = shift; @@ -60,17 +59,11 @@ my $password = ''; my $LicenseBlock = << '.'; -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC -# <jesse@bestpractical.com> +# BEGIN BPS TAGGED BLOCK # -# (Except where explicitly superseded by other copyright notices) +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> # -# -# LICENSE: +# (Except where explictly superceded by other copyright notices) # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have @@ -82,29 +75,14 @@ my $LicenseBlock = << '.'; # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. # # -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} +# END BPS TAGGED BLOCK + . my $Attribution = << '.'; @@ -148,7 +126,6 @@ foreach my $table (@tables) { $tablemap{'CreatedBy'} = 'User'; $tablemap{'UpdatedBy'} = 'User'; -my %typemap; $typemap{'id'} = 'ro'; $typemap{'Creator'} = 'auto'; $typemap{'Created'} = 'auto'; @@ -185,27 +162,7 @@ foreach my $table (@tables) { my $ClassAccessible = ""; my $FieldsPod = ""; my $CreatePod = ""; - my $RecordInit = ""; my %fields; - - - my $introspection = $dbh->prepare("SELECT * from $table where id is null"); - $introspection->execute(); - my @names =@{ $introspection->{'NAME'}}; - my @types = @{$introspection->{'TYPE'}}; - my @is_blob = @{$introspection->{'mysql_is_blob'}}; - my @is_num = @{$introspection->{'mysql_is_num'}}; - - my %blobness = (); - my %sqltypes = (); - my %numeric = (); - foreach my $name (@names) { - $sqltypes{$name} = shift @types; - $blobness{$name} = (shift @is_blob || "0"); - $numeric{$name} = (shift @is_num || "0"); - } - - my $sth = $dbh->prepare("DESCRIBE $table"); $sth->execute; @@ -213,16 +170,10 @@ foreach my $table (@tables) { my $field = $row->{'Field'}; my $type = $row->{'Type'}; my $default = $row->{'Default'}; - my $length = 0; - if ($type =~ /^(?:.*?)\((\d+)\)$/) { - $length = $1; - } $fields{$field} = 1; #generate the 'accessible' datastructure - no warnings 'uninitialized'; - if ( $typemap{$field} eq 'auto' ) { $ClassAccessible .= " $field => {read => 1, auto => 1,"; @@ -236,7 +187,7 @@ foreach my $table (@tables) { {read => 1, write => 1,"; } - $ClassAccessible .= " sql_type => $sqltypes{$field}, length => $length, is_blob => $blobness{$field}, is_numeric => $numeric{$field}, "; + $ClassAccessible .= " type => '$type', default => '$default'},\n"; #generate pod for the accessible fields @@ -248,7 +199,7 @@ Returns the current value of $field. "; - unless ( exists $typemap{$field} && ( $typemap{$field} eq 'auto' || $typemap{$field} eq 'ro' )) { + unless ( $typemap{$field} eq 'auto' || $typemap{$field} eq 'ro' ) { $FieldsPod .= " =head2 Set$field VALUE @@ -303,7 +254,7 @@ sub ${field}Obj { } - my $Create = " + $Create = " sub Create { my \$self = shift; my \%args = ( @@ -355,15 +306,10 @@ sub _Init { $CollectionClass .= " - # By default, order by SortOrder - \$self->OrderByCols( - { ALIAS => 'main', - FIELD => 'SortOrder', - ORDER => 'ASC' }, - { ALIAS => 'main', - FIELD => 'id', - ORDER => 'ASC' }, - ); + # By default, order by name + \$self->OrderBy( ALIAS => 'main', + FIELD => 'SortOrder', + ORDER => 'ASC'); "; } $CollectionClass .= " @@ -451,7 +397,7 @@ $ClassAccessible open( COL, ">$CollectionClassPath" ); print COL $CollectionClass; - close(COL); + close($COL); } @@ -492,7 +438,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); |