3 use FS::Schema qw( dbdef_dist );
8 # add a new FS/FS/table.pm
11 my %ut = ( #just guesses
18 my $dbdef_table = dbdef_dist->table($table)
19 or die "define table in Schema.pm first";
20 my $primary_key = $dbdef_table->primary_key;
22 open(SRC,"<eg/table_template.pm") or die $!;
23 -e "FS/FS/$table.pm" and die "FS/FS/$table.pm already exists!";
24 open(DEST,">FS/FS/$table.pm") or die $!;
26 while (my $line = <SRC>) {
28 $line =~ s/table_name/$table/g;
30 if ( $line =~ /^=item\s+field\s+-\s+description\s*$/ ) {
32 foreach my $column ( $dbdef_table->columns ) {
33 print DEST "=item $column - ";
34 print DEST "primary key"
35 if $column eq $primary_key;
40 } elsif ( $line=~ /^(\s*)\$self->ut_numbern\('primary_key'\)\s*/ ) {
42 print DEST "$1\$self->ut_numbern('$primary_key')\n"
47 $line =~ /^(\s*)\|\|\s+\$self->ut_number\('validate_other_fields'\)\s*/
50 foreach my $column ( grep { $_ ne $primary_key } $dbdef_table->columns ) {
51 my $ut = $ut{$dbdef_table->column($column)->type};
52 $ut .= 'n' if $dbdef_table->column($column)->null;
53 print DEST "$1|| \$self->ut_$ut('$column')\n";
69 open(TEST,">FS/t/$table.t") or die $!;
71 BEGIN { \$| = 1; print "1..1\\n" }
72 END {print "not ok 1\\n" unless \$loaded;}
80 # add them to MANIFEST
83 system('cvs edit FS/MANIFEST');
85 open(MANIFEST,">>FS/MANIFEST") or die $!;
86 print MANIFEST "FS/$table.pm\n",