Initial release.

This commit is contained in:
hjp 2001-02-12 14:32:43 +00:00
parent f01cfd596d
commit 2a61341c39
3 changed files with 113 additions and 0 deletions

30
oragetsrc/GNUmakefile Normal file
View File

@ -0,0 +1,30 @@
include GNUmakevars
CONFDIR=../../configure
all: configure oragetsrc
clean:
rm oragetsrc customize
install: $(BINDIR) $(BINDIR)/oragetsrc
%: %.pl customize
sh ./customize < $< > $@
chmod +x $@
%: %.sh customize
sh ./customize < $< > $@
chmod +x $@
customize: configure
sh ./configure
configure: $(CONFDIR)/start $(CONFDIR)/perl $(CONFDIR)/finish
cat $^ > $@
$(BINDIR):
mkdir -p $@
include GNUmakerules

34
oragetsrc/configure vendored Normal file
View File

@ -0,0 +1,34 @@
#!/bin/sh
#
echo "#!/bin/sh" > customize.$$
echo "sed \\" > customize.$$
chmod +x customize.$$
################################################################
# find a working perl:
#
for i in /usr/bin/perl /usr/local/bin/perl /usr/bin/perl5 /usr/local/bin/perl5
do
if $i -e 'exit ($] < 5.000)'
then
echo $i works
perl="$i"
break
fi
done
if [ -z "$perl" ]
then
could not find a working perl command, sorry.
exit 1
fi
echo " -e 's,@@@perl@@@,$perl,g' \\" >> customize.$$
################################################################
# finish
# Add trailing newline and rename temp file to final name
#
echo >> customize.$$
mv customize.$$ customize

49
oragetsrc/oragetsrc.pl Executable file
View File

@ -0,0 +1,49 @@
#!@@@perl@@@ -w
# $Id: oragetsrc.pl,v 1.1 2001-02-12 14:32:43 hjp Exp $
#
# print a named source (e.g, a function or procedure) from an oracle schema
#
use strict;
use DBI;
sub read_cred {
my ($fn) = @_;
open(FN, "<$fn") or die "cannot open $fn: $!";
my $line = <FN>;
close(FN);
my @cred = split(/[\s\n]/, $line);
return @cred;
}
if (@ARGV != 2) {
print STDERR "Usage: $0 credential_file source_name\n";
print STDERR "\tcredential_file is a filename relative to \$HOME/.dbi/\n";
print STDERR "\tThe file must contain a single line with three whitespace-separated fields:\n";
print STDERR "\tDBI data source, username, password.\n";
print STDERR "\te.g:\n";
print STDERR "\tdbi:Oracle:ORCL scott tiger\n";
exit 1;
}
my $db_name = $ARGV[0];
my $src_name = $ARGV[1];
my @cred = read_cred("$ENV{HOME}/.dbi/$ARGV[0]");
my $dbh = DBI->connect($cred[0], $cred[1], $cred[2],
{ RaiseError => 1, AutoCommit => 0 });
my $lines =
$dbh->selectcol_arrayref(
"select text from user_source where name=? order by line",
{},
$src_name
);
for my $i (@$lines) {
print "$i";
}
$dbh->disconnect();