Index: openacs-4/bin/create-sql-drop-file.pl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/bin/create-sql-drop-file.pl,v diff -u -N --- openacs-4/bin/create-sql-drop-file.pl 13 Mar 2001 22:59:26 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,72 +0,0 @@ -#!/usr/local/bin/perl -w - -# @author: Jim Guggemoos created it -# @author: Christian Brechbuehler some maintenance - -# From a -create.sql script, construct the matching -drop.sql script. -# -# Does not follow @ or @@; rather there should be a -drop for every -create, -# like, e.g., in /packags/acs-kernel/sql. - - -if ( @ARGV != 1 ) { - die "usage: $0 x-create.sql [ > x-drop.sql ]\n" -} - -open( INFILE, "$ARGV[0]" ) or die "could not open $ARGV[0] for read\n"; - -$commit = 0; - -while ( ) -{ - chop( $_ ); - $_ =~ s/--.*$//; - $_ =~ s/\s+or\s+replace//i; - $_ =~ s/replace\s+or\s+//i; - $_ =~ s/^\s+$//; - - if ( $_ =~ /^create\s+([^\s]+\s+[^\s\(;]+)/ ) { - $x = $1; - $x =~ s/\s+$//; - push( @obj_list, "$x" ); - } elsif ( $_ =~ /begin\s+create_group_type_fields\(\s*('[^']+'),/i ) { - $group = $1; - push( @obj_list, "GTF:$group" ); - } elsif ( $_ =~ /commit\s*;/i ) { - $commit = 1; - } elsif ( $_ =~ /alter\s+table\s+([^\s]+)\s+add\s+constraint\s+([^\s]+)/i ) { - push( @obj_list, "CONS:$1:$2" ); - } elsif ( $_ =~ /(@@?)\s*(\S+)-create(\.sql)?/i ) { - push( @obj_list, "$1 $2") - } -} - -close( INFILE ); - -$tailname = $ARGV[0]; -if ( $tailname =~ /\/([^\/]+$)/ ) { - $tailname = $1; -} - -$t = localtime(time()); -print "-- Uninstall file for the data model created by '$tailname'\n"; -print "-- (This file created automatically by create-sql-uninst.pl.)\n"; -$uname=$ENV{"USER"}; -print "--\n-- $uname ($t)\n--\n-- \$Id\$\n--\n\n"; - -foreach $x (reverse( @obj_list )) { - if ( $x =~ /^GTF:(.+)$/ ) { - print "BEGIN remove_group_type_fields( $1 );\nEND;\n/\n"; - } elsif ( $x =~ /^CONS:([^:]+):(.*)/ ) { - print "alter table $1 drop constraint $2;\n"; - } elsif ( $x =~ /^@/) { - print "$x-drop\n"; - } - else { - print "drop $x;\n"; - } -} - -if ( $commit ) { - print "\nCOMMIT;\n"; -}