Reuse the TempExtlib trick from DBIC
Peter Rabbitson [Fri, 17 Jan 2014 01:57:46 +0000 (02:57 +0100)]
.gitignore
Makefile.PL
lib/SQL/Abstract.pm
lib/SQL/Abstract/Test.pm
lib/SQL/Abstract/Tree.pm
lib/SQL/Abstract/_TempExtlib.pm [new file with mode: 0644]
maint/careless_ssh.bash [new file with mode: 0755]

index 2c25792..f1481cd 100644 (file)
@@ -10,3 +10,5 @@ _build/
 blib/
 inc/
 pm_to_blib
+
+lib/SQL/Abstract/_TempExtlib/
index 3b1ad3b..be4ee44 100644 (file)
@@ -4,6 +4,40 @@ use warnings;
 
 use 5.006002;
 
+##
+## TEMPORARY (and non-portable)
+## Get the dq stuff
+##
+my $target_libdir;
+BEGIN {
+  $target_libdir = 'lib/SQL/Abstract/_TempExtlib';
+
+  if ($Module::Install::AUTHOR or $ENV{TRAVIS}) {
+
+    `rm -rf $target_libdir`;
+    `mkdir $target_libdir`;
+    for (
+      [ 'Data-Query' => 'master' ],
+    ) {
+      my $tdir = "/tmp/dqlib/$_->[0]/";
+
+      `rm -rf $tdir`;
+
+      `GIT_SSH=maint/careless_ssh.bash git clone --bare --quiet --branch=$_->[1] --depth=1 git://git.shadowcat.co.uk/dbsrgits/$_->[0] $tdir`;
+      printf "\nIncluding %s git rev %s\n",
+        $_->[0],
+        scalar `GIT_DIR=$tdir git rev-parse $_->[1]`,
+      ;
+      `git archive --format=tar --remote=file://$tdir $_->[1] lib/ | tar --strip-components=1 -xC $target_libdir`;
+
+      #`rm -rf $tdir`;
+    }
+  }
+}
+
+use lib $target_libdir;
+
+
 perl_version '5.006002';
 name 'SQL-Abstract';
 author 'Nathan Wiger <nate@wiger.org>';
@@ -15,6 +49,10 @@ all_from 'lib/SQL/Abstract.pm';
 
 dynamic_config 0;
 
+# deps for Data::Query
+requires 'SQL::ReservedWords' => '0.8',
+requires 'Safe::Isa' => '1.000003',
+
 requires 'List::Util'   => 0;
 requires 'Scalar::Util' => 0;
 requires 'Getopt::Long::Descriptive' => 0.091;
@@ -30,6 +68,8 @@ test_requires "Storable"        => 0;   # for cloning in tests
 
 no_index package => 'DBIx::Class::Storage::Debug::PrettyPrint';
 no_index directory => 'examples';
+no_index package => 'SQL::Abstract::_TempExtlib';
+no_index directory => 'lib/SQL/Abstract/_TempExtlib';
 
 install_script 'format-sql';
 
index 8f1fe83..fd9cb55 100644 (file)
@@ -1,5 +1,7 @@
 package SQL::Abstract; # see doc at end of file
 
+use SQL::Abstract::_TempExtlib;
+
 use Carp ();
 use List::Util ();
 use Scalar::Util ();
index 419d516..e78fa80 100644 (file)
@@ -1,5 +1,7 @@
 package SQL::Abstract::Test; # see doc at end of file
 
+use SQL::Abstract::_TempExtlib;
+
 use strict;
 use warnings;
 use base qw(Test::Builder::Module Exporter);
index c14ec11..1decca5 100644 (file)
@@ -1,5 +1,7 @@
 package SQL::Abstract::Tree;
 
+use SQL::Abstract::_TempExtlib;
+
 use Carp;
 use Hash::Merge ();
 
diff --git a/lib/SQL/Abstract/_TempExtlib.pm b/lib/SQL/Abstract/_TempExtlib.pm
new file mode 100644 (file)
index 0000000..fe111cf
--- /dev/null
@@ -0,0 +1,14 @@
+package # hide from the pauses
+  SQL::Abstract::_TempExtlib;
+
+use strict;
+use warnings;
+use File::Spec;
+
+our ($HERE) = File::Spec->rel2abs(
+  File::Spec->catdir( (File::Spec->splitpath(__FILE__))[1], '_TempExtlib' )
+) =~ /^(.*)$/; # screw you, taint mode
+
+unshift @INC, $HERE;
+
+1;
diff --git a/maint/careless_ssh.bash b/maint/careless_ssh.bash
new file mode 100755 (executable)
index 0000000..1b9e0bc
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+/usr/bin/ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$@"